C#从IP获取计算机名

C# Get computer name from IP

我正在使用 Xamarin Studio 开发 iOS,我需要几个函数来从 IP 获取计算机名称,反之亦然

我试过这段代码从 IP 获取机器名

string machineName = string.Empty;
try
{
    IPHostEntry hostEntry = Dns.GetHostEntry(ipAdress);

    machineName = hostEntry.HostName;
}
catch (Exception ex)
{
    // Machine not found...
}
return machineName;

但是我一直在获取机器的IP地址,所以没有用,因为我输入了IP地址并获取了IP地址。

我尝试过类似的方法从主机名获取 IP 地址我总是得到异常 "Unable to resolve hostname HITMAN-DESKTOP" 是 HITMAN-DESKTOP 我的远程机器可以访问在测试期间从网络中的任何点和在线。

有什么想法吗?

这种方法的问题 Pedro 是您不会使用该函数获取计算机名称,除非 DNS 将计算机名称设置为主机名,它可能有也可能没有(提示:可能不是)。

计算机名只是一个本地字符串。主机名是与 IP 绑定的网络约定,您必须手动设置它。大多数网络管理员会将主机名设置为与计算机名相同,但不能保证如此。因此,您正在获取 IP 地址。 "HITMAN-DESKTOP" 不是您的主机名(网络标识符),而是计算机名称(本地标识符)并且不在 DNS 中。

简而言之,我认为没有可靠的方法可以使用纯 .NET 执行此操作,除非您 100% 确定要检查的所有主机名都等于​​计算机名称。