我在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
答案 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)