在本地网络中查找某些Windows Phone设备的IP

时间:2014-09-16 12:22:40

标签: c# sockets windows-phone-8 network-programming ip

我正在尝试构建C#应用程序(桌面,Windows,现在并不重要),我希望使用套接字连接到我的Windows手机来传输一些数据...我知道如何实现这一目标,。

通过套接字连接时,我不想手动输入Windows Phone设备的IP地址。所以我想知道是否可以通过一些消息从Windows手机应用程序发送一些HTTP请求,并在计算机上获取该消息,以确定哪个IP是Windows Phone的IP?

换句话说,如何从网络设备的一堆IP地址知道哪个IP地址属于Windows手机的IP地址?

1 个答案:

答案 0 :(得分:0)

Here

获取此链接

添加NameSpace:

使用Windows.Networking;

 public static string FindIPAddress()
        {
            List<string> ipAddresses = new List<string>();
            var hostnames = NetworkInformation.GetHostNames();
            foreach (var hn in hostnames)
            {
                //IanaInterfaceType == 71 => Wifi
                //IanaInterfaceType == 6 => Ethernet (Emulator)
                if (hn.IPInformation != null && 
                    (hn.IPInformation.NetworkAdapter.IanaInterfaceType == 71 
                    || hn.IPInformation.NetworkAdapter.IanaInterfaceType == 6))
                {
                    string ipAddress = hn.DisplayName;
                    ipAddresses.Add(ipAddress);
                }
            }

            if (ipAddresses.Count < 1)
            {
                return null;
            }
            else if (ipAddresses.Count == 1)
            {
                return ipAddresses[0];
            }
            else
            {
                //if multiple suitable address were found use the last one
                //(regularly the external interface of an emulated device)
                return ipAddresses[ipAddresses.Count - 1];
            }
        }

修改

如果我错了你想从一堆IP地址获取特定的Windows Phone IP地址。 AFAIK你不能这样。但是我建议你在获取下面的Windows Phone IP时附加一些字符串,这与其他IP地址有所不同。通过自己查看。

    string IPadd = FindIPAddress();    
    string WPIPadd = IPadd + " - Windows phone "
    MessageDialog.show(WPIPadd);

如果您发现任何新的东西,请告诉我们。感谢