如何获取我的设备的IP和服务器IP(windows-CE)

时间:2011-03-07 20:32:08

标签: c# windows-ce

如何在windows-CE中获取我的IP和服务器的IP(使用C#)?

3 个答案:

答案 0 :(得分:2)

你的问题很模糊。我不知道你想要哪个适配器或地址类型,所以我假设你想要第一个本地适配器的IPv4地址。这看起来像这样:

var ip = (from a in Dns.GetHostEntry(Dns.GetHostName()).AddressList
     where a.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork
      select a).First().ToString();

获取给定服务器的IP地址需要您知道它的主机名,然后您才能对该名称进行查找(即Dns.GetHostEntry)。它看起来很像上面的代码,除了你使用服务器主机名而不是Dns.GetHostName()调用。

答案 1 :(得分:0)

它涉及一些P / Invoke魔法。因为它是很多代码而我拥有的是部分专有的,所以我不能发布所有代码,但我可以提供一些提示。

// MSDN: http://msdn.microsoft.com/en-us/library/aa365917(v=vs.85).aspx
[DllImport("iphlpapi.dll", SetLastError = true)]
internal static extern int GetAdaptersInfo(IntPtr pAdapterInfo, ref int pOutBufLen);

[DllImport("iphlpapi.dll", SetLastError = true)]
internal static extern int GetAdapterIndex(string AdapterName, ref int IfIndex);

答案 2 :(得分:0)

我知道这个问题已经过时了,但我最近遇到了这个问题。由于我们已经使用OpenNETCF,因此我使用此库来查询我的NIC及其相关地址。这是在Windows Mobile 6.5(CE 5.2)上。

var ifs = OpenNETCF.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();
foreach (var nic in ifs)
{
  IPAddress myip = nic.CurrentIpAddress;
}

即使未配置DNS,这也会有效。