2016-07-05 41 views
-2

獲取計算機名我使用Xamarin Studio開發到iOS,我需要一對夫婦的功能,從IP獲取計算機名稱,反之亦然C#從IP

我試過這個代碼來獲得機器名來自IP

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

    machineName = hostEntry.HostName; 
} 
catch (Exception ex) 
{ 
    // Machine not found... 
} 
return machineName; 

但我不斷收到本機的IP地址,所以因爲我輸入的IP地址,並獲得IP地址也沒用。

我試過的東西都讓從主機名的IP地址,我總是得到的異常「無法解析主機名HITMAN桌面」作爲HITMAN桌面我的遠程機器,從任何一點訪問在網絡和在線測試期間。

任何想法?

+0

難道'[System.Net.Dns] :: GetHostByAddress(.h​​ostname)'是適宜的目的是什麼? – gravity

+0

這就是他目前使用的。 – Gaspa79

+0

正如所標記的副本指出,_「並非每個IP地址都有一個名稱」_。再次提出問題不會改變這一點。如果您有更具體的情況超出了已經提出並回答的問題,請提供這些具體的詳細信息。解釋爲什麼你認爲目標計算機的名稱_should_可檢索,並提供良好的[MCVE],清楚地說明了爲什麼要和你如何在不特定情況下獲得的名稱。 –

回答

1

這種方法的問題佩德羅是,你不會使用該功能得到計算機名稱,除非DNS的計算機名稱設置爲主機名,它可能會或可能沒有它(提示:可能不是)。

計算機名稱只是一個局部的字符串。主機名是與IP綁定的網絡約定,您必須手動設置它。大多數網絡管理員會將主機名設置爲與計算機名稱相同,但不能保證。因爲這個,你正在獲取IP地址。 「殺手桌面」是不是你的主機名(網絡標識符),是計算機名(本地標識符),它是不是在DNS。

總之,我不認爲有一種可靠的方式用純.NET要做到這一點,除非你確信所有要檢查的主機名是等於計算機名稱100%。