我的目标是找到我的wifi ap网关ip。
这是我用来查找网关的代码。
private string GetIpv4Gateway()
{
// get local ip
var localIp = Dns.GetHostEntryAsync((Dns.GetHostName()))
.Result
.AddressList
.Where(x => x.AddressFamily == AddressFamily.InterNetwork)
.Select(x => x.ToString())
.ToArray();
IPAddress address;
if (IPAddress.TryParse(localIp[0], out address))
{
//Valid IP, with address containing the IP
}
else
{
log.Error("Invalid IP");
}
// split the ip
string ipTemp = localIp[0];
string[] splitValues = ipTemp.Split('.');
// replace the ip with gateway ip
splitValues[3] = "1";
//reconstruct the ip
string ipGateway = "http://" + splitValues[0] + "." + splitValues[1] + "." + splitValues[2] + "." + splitValues[3] + "/";
return ipGateway;
}
基本上,它所做的是获取所有本地网络IP段(192.168.0.x,169.254.185.x),假设第一个设备是wifi ap网段并将最后一个ip替换为1.当第一个网络设备的IP为192.168.0.x时,它工作正常,但当第一个网络设备为168.254.185.x(nmap虚拟网络设备)时,它失败。
我怎么知道哪个网络IP段是我的wifi ip段?