你如何获得远程计算机的主机名?

时间:2018-06-04 19:18:14

标签: c# .net

我目前正在C#上为我的任务开发一个客户端 - 服务器桌面应用程序。我设法检索远程计算机的IP地址。我可以使用IP地址获取该远程计算机的主机名吗?

这是我的代码:

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

        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);

任何人都知道为什么?

1 个答案:

答案 0 :(得分:0)

DNS可能没有与该IP地址关联的主机名。如果您有权访问,请尝试在客户端上运行以下命令并使用DNS强制进行更新。以下是有关如何执行此操作的更多信息:Renew DNS client registration using the ipconfig command

  

ipconfig / registerdns

或者,您可以使用Microsoft的ARP实用程序,只使用MAC地址。这篇文章有助于该路线:Resolve IP Address And Host Name From MAC Address using C# and Windows ARP Utility