Прямо сейчас у меня есть требование, чтобы найти Hostname некоторых ПК его IP-адрес и я решил эту проблему с помощью этой функции:Допускается ли подстрока 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]
.
Другой способ может состоять в том, чтобы разбить строку на точку (.), Но это будет только так же безопасно, как и этот :) – sachin
Почему, по вашему мнению, этот подход небезопасен? – Steve
Я немного боюсь, что не каждая ОС возвращает имя хоста в формате: '[Hostname]. [Domainname]'. – Smartis