Как узнать имя компьютера по IP-адресу
Я пытаюсь получить имя компьютера для текущего пользователя. Я могу получить IP-адрес, используя System.Net.Dns.GetHostEntry("ComputerName").Address.ToString()
но когда я заменяю *ComputerName* на IP- адрес, я получаю следующую ошибку.
Такой хост не известен
Я включил обратный DNS в IIS7, выполнив команду: Cscript.exe adsutil.vbs установите значение TRUE в файле w3svc / EnableReverseDNS в каталоге C:\inetpub\AdminScripts на моем сервере.
Есть идеи, что я делаю не так?
Обновить
Общая цель состоит в том, чтобы это было приложение службы поддержки, и для пользователя будет полезно иметь возможность легко предоставить имя своего компьютера для помощи.
Локально все работает, но не работает после публикации на сервере.
3 ответа
Спасибо всем, кто ответил на этот пост.
На самом деле, код не был проблемой. Не было ничего плохого в коде, который я пробовал, или в предложениях. Я обнаружил, что запись DNS сервера не была правильно настроена.
Может быть, это поможет кому-то еще.
Вот как получить его на другой машине. Это также даст вам версию IPv4.
class getIP
{
public getIP()
{
IPAddress ip = Dns.GetHostEntry("whybla01").AddressList.Where(o => o.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).First();
Console.WriteLine(ip);
string name = Dns.GetHostEntry(ip).HostName.ToString();
Console.WriteLine(name);
}
}
Вы можете попробовать это:
string machineName = GetMachineNameFromIPAddress(yourIPAdress);
private static string GetMachineNameFromIPAddress(string ipAdress)
{
string machineName = string.Empty;
try
{
IPHostEntry hostEntry = Dns.GetHostEntry(ipAdress);
machineName = hostEntry.HostName;
}
catch (Exception ex)
{
// Machine not found...
}
return machineName;
}