[英]How do you get hostname of remote computer?
我目前正在 C# 上为我的任务开发客户端-服务器桌面应用程序。 我设法检索了远程计算机的 IP 地址。 我可以使用 IP 地址获取该远程计算机的主机名吗?
这是我的代码:
private static string GetMachineNameFromIPAddress(string ipAddress)
{
string machineName = string.Empty;
try
{
IPHostEntry hostEntry = Dns.GetHostEntry(ipAddress);
machineName = hostEntry.HostName;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
return machineName;
}
我将检索到的 IP 地址放入标签中
var socketip = ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString();
ipLabel.Text = socketip;
但是当我尝试使用此代码显示它时它没有出现
string CompName = GetMachineNameFromIPAddress(socketip);
listBox1.Items.Add("Computer Name: " + CompName);
有谁知道为什么?
DNS 可能没有与该 IP 地址关联的主机名。 如果您有访问权限,请尝试在客户端上运行以下命令并使用 DNS 强制更新。 以下是有关如何执行此操作的更多信息: 使用 ipconfig 命令更新 DNS 客户端注册
ipconfig /注册DNS
或者,您可以使用 Microsoft 的 ARP 实用程序并仅使用 MAC 地址。 这是一篇有助于解决该路由的文章: Resolve IP Address And Host Name From MAC Address using C# and Windows ARP Utility
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.