如何在windows-CE中获取我的IP和服务器的IP(使用C#)?
答案 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,这也会有效。