Как узнать имя компьютера по 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;
        }
Другие вопросы по тегам