繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM