2008-08-20 5 views
4

Ich wollte die Benutzer Name Address anzeigen (siehe www.ipchicken.com), aber das einzige, was ich finden kann, ist die IP-Adresse. Ich habe versucht, eine Reverse-Lookup, aber auch nicht funktioniert:Abrufen der Remote-Name-Adresse (nicht IP)

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

Aber HostName ist das gleiche wie die IP-Adresse.

Wer weiß, was ich tun muss?

Danke. Gab.

Antwort

3

Edit meiner vorherigen Antwort. Versuchen (in 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 erscheint in späteren Versionen von .NET obsolet. Wie bereits erwähnt, wird das Problem dadurch verursacht, dass Ihre IP-Adresse keinen festen Namen hat oder mehrere Namen hat. Das obige Beispiel funktioniert mit Google-Adressen, aber nicht mit einer von uns verwendeten Adresse, der ein paar Namen zugeordnet sind.

0

Nicht alle IP-Adressen müssen Hostnamen haben. Ich denke, genau das passiert in Ihrem Fall. Probieren Sie es ouy mit bekannteren IP/Host-Namen-Paare zB:

Name: google.com Adresse: 72.14.207.99

Name: google.com Adresse: 64.233.187.99

Namen : google.com Adresse: 64.233.167.99

... ich könnte nur

0

viele Benutzer h falsch sein die gleiche gemeinsame IP-Adresse haben, so dass Sie ihre Hostnamen nicht finden können. Und viele Benutzer haben nicht unbedingt DNS-Einträge im öffentlichen DNS für die IPs, aus denen sie stammen.

2

Sie benötigen die Dns.Resolve() -Methode von System.Net

dies Siehe article

1

Denken Sie auch daran, dass Reverse-Lookup nicht durchweg die gleiche Adresse wie die in Vorwärts-DNS-Lookup verwendet, um einen geben.

Zum Beispiel für google.com ich ip 64.233.167.99
aber DNS-Lookup für diese IP-Renditen py-in-f99.google.com

2

Dumm mich ... Der Code umkehren wird, wurden 100 veröffentlicht % gültig und funktionierend ... Aber 10 Zeilen tiefer habe ich den this.lblHost.Text durch einen anderen Wert ersetzt, der zufällig die IP-Adresse war.

Entschuldigung.

Verwandte Themen