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