2012-02-01 26 views
9

Yo uso Request.UserHostAddress, solo puedo obtener la dirección IPv4, ¿cómo obtener la dirección IPv6 de un visitante?¿Cómo obtener la dirección IPv6 en C#?

+3

Un visitante tendrá CUALQUIER dirección v4 O v6. Ellos no vendrán con ambos. –

+1

¿Está el usuario accediendo al sitio web a través de IPv6 en primer lugar? Ver http://stackoverflow.com/questions/9061470/get-user-ip-in-c-sharp. – GSerg

+1

Siempre puede convertir una dirección IPv4 manualmente a un IPv6: http://www.fnode.com/2009/11/convert-ipv4-into-ipv6/ – Max

Respuesta

12

Supongo que estás hablando de HttpRequest.UserHostAddress. Siempre devolverá la dirección que se utilizó para conectarse a usted. Si la solicitud se realizó a través de IPv6, devolverá su dirección IPv6; si la solicitud se realizó a través de IPv4, devolverá su dirección IPv4.

Debería comenzar investigando por qué la solicitud se realiza a través de IPv4. Y la gente en http://serverfault.com probablemente será de más ayuda en eso.

6

Una dirección IPv4 se traduce a una dirección IPv6 colocando los 4 octetos de la dirección IPv4 en los 4 octetos más a la derecha de la dirección IPv6.

Después de insertar los 4 octetos de la dirección IPv4 en los más a la derecha de 4 octetos de la dirección IPv6, el resto de más a la izquierda octetos serían ser 0 en el valor.

Cuestiones relacionadas