Получение адреса удаленного имени (не IP) - PullRequest
4 голосов
/ 20 августа 2008

Я хотел показать имя пользователя (см. www.ipchicken.com ), но единственное, что я могу найти, - это IP-адрес. Я пробовал обратный поиск, но тоже не сработало:

IPAddress ip = IPAddress.Parse(this.lblIp.Text);
string hostName = Dns.GetHostByAddress(ip).HostName;
this.lblHost.Text = hostName;

Но HostName совпадает с IP-адресом.

Кто знает, что мне нужно делать?

Спасибо. Габ.

Ответы [ 6 ]

3 голосов
/ 20 августа 2008

Редактирование моего предыдущего ответа. Попробуйте (в vb.net):

    Dim sTmp As String
    Dim ip As IPHostEntry

    sTmp = MaskedTextBox1.Text
    Dim ipAddr As IPAddress = IPAddress.Parse(sTmp)
    ip = Dns.GetHostEntry(ipAddr)
    MaskedTextBox2.Text = ip.HostName

Dns.resolve устарел в более поздних версиях .Net. Как было сказано выше, я полагаю, что проблема вызвана тем, что ваш IP-адрес не имеет фиксированного имени или имеет несколько имен. Приведенный выше пример работает с адресами Google, но не с используемым нами адресом, с которым связано несколько имен.

2 голосов
/ 20 августа 2008

Глупо ... Код опубликован был на 100% действительным и работающим ... Но на 10 строк ниже я заменил this.lblHost.Text другим значением, которое оказалось IP-адресом.

Извините.

2 голосов
/ 20 августа 2008

Вам нужен метод Dns.Resolve () из System.Net

См. статью

1 голос
/ 20 августа 2008

Также помните, что обратный поиск не всегда будет давать тот же адрес, что и при прямом поиске DNS.

Например для google.com я получаю ip 64.233.167.99
но обратный поиск DNS для этого IP-адреса возвращает py-in-f99.google.com

0 голосов
/ 20 августа 2008

У многих пользователей один и тот же общий IP-адрес, поэтому вы не сможете найти их имена хостов. И многие пользователи не обязательно будут иметь записи DNS в общедоступных DNS для IP-адресов, с которых они приходят.

0 голосов
/ 20 августа 2008

Не все IP-адреса должны иметь имена хостов. Я думаю, что то, что происходит в вашем случае. Попробуйте использовать более известные пары IP / имя хоста, например:

Имя: google.com Адрес: 72.14.207.99

Имя: google.com Адрес: 64.233.187.99

Имя: google.com Адрес: 64.233.167.99

... я могу просто ошибаться

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...