2016-08-03 3 views
0

は今、私は彼のIPアドレスによっていくつかのPCのホスト名を見つけるための要件を持っていると私は、この機能を使用してこの問題は解決:Machine Nameに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()溶液で満足していません。

このようにこの機能を使用することはできますか?または、ネットワークの将来の問題を恐れる必要がありますか?ドメインなしでホスト名にアクセスする方が良い(より安全な)方法がありますか?

私はより安全なネットワークソリューションを探しています。文字列を扱う別の方法ではありません。私が少し恐れるコメントで述べたように、すべてのOSがホスト名を返すわけではありません:[Hostname].[Domainname]

+0

他の方法では、ドット(。)で文字列を分割することができますが、これはこれと同じようにSECUREでしかありません:) – sachin

+1

なぜこの方法は安全ではないと思いますか? – Steve

+0

私は少し恐れています。すべてのOSがホスト名を '[Hostname]。[Domainname]'の形式で返すわけではありません。 – Smartis

答えて

-2

はPCがドメインに参加されていない場合は、エラーになります。この

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

関連する問題