Получение адреса удаленного имени (не IP)

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

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

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

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

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

20.08.2008 11:52:59
6 ОТВЕТОВ
РЕШЕНИЕ

Редактировать мой предыдущий ответ. Попробуйте (в 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, но не с используемым нами адресом, с которым связано несколько имен.

3
20.08.2008 12:25:55

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

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

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

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

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

0
20.08.2008 11:55:26

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

0
20.08.2008 11:56:09

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

Смотрите эту статью

2
20.08.2008 11:58:30

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

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

1
20.08.2008 12:03:35

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

Сожалею.

2
20.08.2008 12:36:25