2012-02-28 72 views
1

通過硬編碼連接的網絡的IP地址,我可以實現android和PC之間的Wi-Fi通信。但我需要獲得連接到Wi-Fi網絡的系統的IP地址。 Iam使用C#在Windows平臺上工作。所以請在這方面幫助我。獲取wifi連接系統的IP地址

+0

看看這個鏈接:http://stackoverflow.com/questions/1069103/how-to-get-my-own-ip-address-in-c – 2012-02-28 18:26:38

+0

看到這個:HTTP:// stackoverflow.com/questions/2518155/other-than-udp-broadcast-or-multicast-what-other-methods-can-i-use-on-a-wifi-ne – arx 2012-02-28 18:29:57

回答

2

這可能會爲你工作:

string[] strIP = null; 
int count = 0; 

IPHostEntry HostEntry = Dns.GetHostEntry((Dns.GetHostName())); 
if (HostEntry.AddressList.Length > 0) 
{ 
    strIP = new string[HostEntry.AddressList.Length]; 
    foreach (IPAddress ip in HostEntry.AddressList) 
    { 
     if (ip.AddressFamily == AddressFamily.InterNetwork) 
     { 
      strIP[count] = ip.ToString(); 
      count++; 
     } 
    } 
} 

的問題是,主機可以有多個IP地址。這就是爲什麼使用字符串數組,它收集所有。

通過L.B--

--EDITED這裏是代碼的工作版本以上

var addresses = Dns.GetHostEntry((Dns.GetHostName())) 
        .AddressList 
        .Where(x => x.AddressFamily == AddressFamily.InterNetwork) 
        .Select(x => x.ToString()) 
        .ToArray(); 
+1

'HosyEntry',使用'strIP'而沒有初始化。等你有沒有嘗試編譯和運行你的代碼? – 2012-02-28 19:09:32

+0

是的 - 對不起。當我寫這篇文章時(我的電話),我離開了VS。好的編輯+1 – jwddixon 2012-02-28 19:22:55

0

對於UWP,用它來得到你的本地IP地址。根據@ L.B的回答進行更新。

var addresses = Dns.GetHostEntryAsync((Dns.GetHostName())) 
       .Result 
       .AddressList 
       .Where(x => x.AddressFamily == AddressFamily.InterNetwork) 
       .Select(x => x.ToString()) 
       .ToArray();