C# 从 IP 获取计算机名称

本文关键字:计算机名 获取 IP | 更新日期: 2023-09-27 17:55:15

我正在使用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地址,我总是收到异常"无法解析主机名HITMAN-DESKTOP",这是我的远程机器,可以在测试期间从网络中的任何点和在线访问。

有什么想法吗?

C# 从 IP 获取计算机名称

这种方法的问题在于,除非DNS将计算机名称设置为主机名,否则您将无法使用该功能获取计算机名称,它可能有也可能没有主机名(提示:可能没有)。

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

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