通过硬编码连接网络的IP地址,我能够在Android和PC之间实现Wi-Fi通信。但我需要获得连接到Wi-Fi网络的系统的IP地址。我使用C#在Windows平台上工作。所以请在这方面帮助我。
答案 0 :(得分:4)
这可能对您有用:
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编辑
以下是上面代码的工作版本
var addresses = Dns.GetHostEntry((Dns.GetHostName()))
.AddressList
.Where(x => x.AddressFamily == AddressFamily.InterNetwork)
.Select(x => x.ToString())
.ToArray();
答案 1 :(得分:1)
对于UWP,使用它来获取本地IP地址。根据@ L.B。
的答案更新var addresses = Dns.GetHostEntryAsync((Dns.GetHostName()))
.Result
.AddressList
.Where(x => x.AddressFamily == AddressFamily.InterNetwork)
.Select(x => x.ToString())
.ToArray();