如何获取系统的本地IP地址?

时间:2011-08-27 12:38:28

标签: vb.net networking

  

可能重复:
  How to get local ip address using vb?

我在VB.NET中使用Silverlight3。我已在我的服务文件中编写了以下代码。当我在本地运行我的项目时,它成功地将我的系统的IP地址提供为192.168.1.12。但是,当我托管我的项目时,它不会返回我正在使用的系统的IP地址。

ie:如果我在系统A中托管我的项目是ip 192.168.1.12,如果我从系统B访问项目是ip 192.168.1.7,我项目的输出将给出系统A的IP(我托管我的项目的地方)。它应该给出运行它的系统B的IP。同样,如果从系统C访问项目意味着它应该给出系统C的IP,但是它返回系统A的IP。

请帮助我。 感谢

Private Function fnLocalIp() As String
    Try
        Dim h As System.Net.IPHostEntry = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName)
        Dim strLocalIp As String = h.AddressList.GetValue(0).ToString
        Return strLocalIp
    Catch ex As Exception
    End Try
End Function

2 个答案:

答案 0 :(得分:5)

您可以使用以下代码获取本地IP:

在vb.net中:

Dim host As String = System.Net.Dns.GetHostName()
Dim LocalHostaddress As String = System.Net.Dns.GetHostByName(host).AddressList(1).ToString()

在c#中:

string host = System.Net.Dns.GetHostName();
string LocalHostaddress = System.Net.Dns.GetHostByName(host).AddressList[1].ToString();

答案 1 :(得分:0)

使用dns类,更多信息在这里

http://msdn.microsoft.com/it-it/library/system.net.dns.aspx

问候。