2008-08-20 3 views
4

Je voulais afficher l'adresse Nom des utilisateurs (voir www.ipchicken.com), mais la seule chose que je puisse trouver est l'adresse IP. J'ai essayé une recherche inversée, mais ne fonctionnait pas non plus:Obtention de l'adresse de nom à distance (non IP)

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

Mais HostName est identique à l'adresse IP.

Qui sait ce que je dois faire?

Merci. Gab.

Répondre

3

Modifier ma réponse précédente. Essayez (en 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 semble être obsolète dans les versions ultérieures de .Net. Comme indiqué ici avant je crois que le problème est causé par votre adresse IP ne pas avoir un nom fixe ou par plusieurs noms. L'exemple ci-dessus fonctionne avec les adresses Google, mais pas avec une adresse associée à plusieurs adresses.

0

Toutes les adresses IP ne doivent pas nécessairement contenir de noms d'hôte. Je pense que c'est ce qui se passe dans votre cas. Essayez-Ouy avec plusieurs paires IP/nom d'hôte bien connu, par exemple:

Nom: google.com Adresse: 72.14.207.99

Nom: google.com Adresse: 64.233.187.99

Nom : google.com Adresse: 64.233.167.99

... je pourrais juste être mal

0

beaucoup d'utilisateurs h ont la même adresse IP partagée, donc vous ne pourrez pas trouver leurs noms d'hôtes. Et beaucoup d'utilisateurs n'auront pas nécessairement d'enregistrements DNS dans le DNS public pour les adresses IP dont ils proviennent également.

2

Vous devez la méthode Dns.Resolve() de System.Net

Voir cette article

1

Rappelez-vous aussi que la recherche inversée donnera pas AllWays la même adresse que celle utilisée dans la recherche DNS avant.

Par exemple, pour google.com je reçois ip 64.233.167.99
mais inverse dns recherche pour que les retours IP py-in-f99.google.com

2

moi stupide ... Le code est affiché était de 100 % valide et de travail ... Mais 10 lignes plus bas j'ai remplacé le this.lblHost.Text avec une autre valeur, qui s'est avérée être l'adresse IP.

Désolé.

Questions connexes