web-dev-qa-db-fra.com

Problème Request.UserHostAddress avec le résultat de retour ":: 1"

J'essaie d'obtenir l'adresse IP du client en utilisant

    HttpContext.Request.UserHostAddress;

mais il renvoie ::1.

Comment résoudre ça?

50
yohan.jayarathna

::1 est pour localhost, Peut-être this pourrait être utile.

51
V4Vendetta

Ce n'est pas un bug - vous vous connectez depuis localhost sur une machine compatible IPv6 . ::1 est l'adresse de bouclage - n double deux-points signifie "zéros omis" , donc cette adresse correspond à l'adresse 1.

Si vous développez de nouveaux logiciels , je vous conseille vivement de ne pas pour désactiver IPv6. Le moment le plus simple pour implémenter le support est dès le début, et passer du temps sur les solutions de contournement est peut-être juste une perte d'efforts pour repousser l'inévitable.

27
Eamon Nerbonne

Bien qu'il soit vrai que ce n'est pas un bug, vous pouvez peut-être vérifier ce lien , où votre problème est bien décrit et "résolu". Il indique que le comportement du problème dépend du système d'exploitation, car un utilisateur a résolu certains problèmes dans une application exécutée dans Windows Server 2008 en commentant le ::1 ligne dans le fichier des hôtes , alors qu'il devait le décommenter dans Windows 7 .

J'espère que vous avez réussi à résoudre cela! Bonne chance!

3
FranciscoBouza

ce n'est pas un bogue, en fait, vous exécutez votre application sur un hôte local, cela vous donne simplement l'ip de l'hôte local et c'est le format ipv6

1
Rajat Singh