2016-08-03 28 views
0

現在我有他的IP地址,找到了一些PC的主機名的要求,我解決了這個問題,這個功能:是否允許將Substring IPHostEntry.HostName用於機器名稱?

/// <summary> 
/// Returns the DNS Name of IP Address without the Domain. 
/// </summary> 
public string GetDNSNameFromReverseLookUp(string ip) 
{ 
    IPAddress hostIPAddress = IPAddress.Parse(ip); 
    IPHostEntry hostInfo = Dns.GetHostEntry(hostIPAddress); 
    return hostInfo.HostName.Substring(0, hostInfo.HostName.IndexOf('.')); 
} 

但我不是很滿意這個問題的解決方案substring()

是否允許以這種方式使用此功能?或者我必須擔心未來會出現一些網絡問題?有沒有更好(更安全)的方式來到沒有域的主機名?

我正在尋找更安全的網絡解決方案,而不是另一種處理字符串的方法。正如評論中提到的,我擔心一點,並不是每個操作系統都會以以下格式返回主機名:[Hostname].[Domainname]

+0

另一種方式可能是拆分點(。)上的字符串,但那隻會與此一樣安全:) – sachin

+1

您爲什麼認爲這種方法不安全? – Steve

+0

我擔心一點,並不是每個操作系統都以格式返回主機名:'[Hostname]。[Domainname]'。 – Smartis

回答

-2

試試這個

public string GetDNSNameFromReverseLookUp(string ip) 
{ 
    IPAddress hostIPAddress = IPAddress.Parse(ip); 
    IPHostEntry hostInfo = Dns.GetHostEntry(hostIPAddress); 
    return hostInfo.HostName.Split('.')[0]; 
} 
+0

這是一樣的。沒有更多,不少網絡安全... – Smartis

0

如果電腦沒有加入到域,你會得到一個錯誤。由於沒有找到(點),所以使用分割函數是最合理的。我已經檢查過了。

+0

這是正確的,但也不是功能的責任。 – Smartis