当我有多个虚拟本地网络设备时,如何找到我的wifi网关ip?

时间:2017-01-25 10:03:31

标签: c# network-programming uwp

我的目标是找到我的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段?

0 个答案:

没有答案