2015-12-21 321 views
-2

我的下面的代碼是獲取ivp6 ip地址我不知道如何以相同的方式獲得ipv4。C#asp.net獲取客戶端的ipv4 ip地址

string ipAddress = ""; 
      if (Dns.GetHostAddresses(Dns.GetHostName()).Length > 0) 
      { 
       ipAddress = Dns.GetHostAddresses(Dns.GetHostName())[0].ToString(); 
      } 
+2

'Dns.GetHostName()'與客戶端無關。 – CodeCaster

+0

'string strHostName = System.Net.Dns.GetHostName(); IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName); IPAddress [] addr = ipEntry.AddressList;'在IPAddress陣列中,您可以同時獲得IP的IPV4和IPV6 –

回答

1

此代碼: Dns.GetHostAddresses(Dns.GetHostName())

將返回分配到本地機器的所有IP地址的數組。當您分配給ipAddress變量時,您使用的是「[0]」,它僅佔用列表中的第一個IP地址。

看看整個陣列,你可能會發現你確實也在獲取IPv4地址。

+0

感謝您分享我們的知識,但如何做到這一點不知道 – Shaik

+0

看看[GetHostAddresses ](https://msdn.microsoft.com/en-us/library/system.net.dns.gethostaddresses(v = vs.110)的.aspx)。它顯示瞭如何遍歷結果。 –