2009-03-11 6 views
2

Dans mon application ASP.NET, je dis quelque chose comme ça pour obtenir l'adresse IP du client:IIS7 ou ASP.NET est de retour une adresse IP client étrange Adresse

string ipAddress = HttpContext.Current.Request.UserHostAddress; 

Ceci est la voie normale, simple que j'ai toujours utilisé, et ça a toujours semblé fonctionner. Tout le monde sait que l'instruction ci-dessus n'est qu'un wrapper pour la variable de serveur REMOTE_ADDR.

Assez simple, non? Eh bien, dans les derniers jours, j'ai remarqué que sur ma machine dev locale, il est de retour ce que la valeur:

"fe80::dde4:def3:7f1b:a582%10" 

Je ne sais pas pourquoi terrestre. Je cours Vista x64 et exécute mon application avec IIS7. Je n'ai IPv4 et IPv6 sont activés, mais qui retourne quelque chose comme:

"1::" 

Je ne sais pas pourquoi cela se passe. Le redémarrage ne résout rien.

EDIT:

J'utilise Chrome lorsque cela se produit.

+0

En cours d'exécution ifconfig/all, je vois une valeur très similaire sur ma carte réseau pour "adresse IPv6 lien-local". – jro

+0

@lfonlfonlfon - il suffit de supprimer la question si vous ne le voulez plus - la suppression du contenu est tout simplement stupide –

+0

J'ai essayé d'abord, Einstein. Vous ne pouvez pas supprimer les éléments marqués comme acceptés ou ayant des votes. –

Répondre

8

On dirait qu'il retourne IPv6. Est l'adresse de bouclage pour IPv6, qui correspond simplement à l'ordre des octets inversés 1::.

Je devrais également noter que fe80::/10 adresses dans IPv6 sont des adresses IP d'autoconfiguration (dans IPv4, ce sont 169.254.0.0/16). Si, par exemple, vous êtes sur un réseau local privé et que vous ne pouvez pas accéder à un serveur DHCP, Windows attribuera automatiquement à votre adaptateur Ethernet une adresse IP d'autoconfiguration.

Juste pour info, vous devez généralement attribuer une adresse IP privée aux cartes qui ne peuvent pas atteindre un serveur DHCP.

+0

Hmm, vous avez raison. Je n'ai jamais vu à quoi ressemble IP6 avant. Je vais regarder ça. Upvote pour l'instant pour l'info. –

4

Utilisez-vous FireFox lorsque vous voyez ce problème? Cela utilisera par défaut IPv6 lorsqu'il sera disponible. Je vous recommande de transformer cette large:

  • Accédez à "about: config"
  • Trouver la "network.dns.disableIPv6" entrée
  • Set à true

Cela permettra également accélérer le développement local et le débogage, car FF se bloque parfois sans raison apparente lorsque IPv6 est activé.

L'autre option que je recommande est de simplement désactiver IPv6. Ce n'est pas utile à l'heure actuelle, sauf si vous utilisez IPv6 de bout en bout, ce qui n'est pas le cas pour les ISP d'utilisateurs finaux. Ouvrez simplement les propriétés de connexion sur votre connexion et décochez la case "Internet Protocol Version 6 (TCP/IPv6)".

+0

J'utilise Chrome. Je verrai ce qui se passe avec vos suggestions. –

+0

J'ai la même configuration que PaulW, et tester avec FF avec l'entrée IPv6 activée, j'obtiens l'adresse IPv4 dans les deux propriétés. – jro

+0

En fait, j'avais déjà défini ce paramètre sur true. J'utilisais Chrome de toute façon, mais Firefox renvoyait IPv4. –

Questions connexes