簡體   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