2012-02-01 10 views
9

Io uso Request.UserHostAddress, posso solo ottenere l'indirizzo IPv4, come ottenere l'indirizzo IPv6 di un visitatore?Come ottenere l'indirizzo IPv6 in C#?

+3

Un visitatore sta per avere un V4 O un indirizzo v6. Non arriveranno con entrambi. –

+1

L'utente che accede al sito Web tramite IPv6 è in primo luogo? Vedi http://stackoverflow.com/questions/9061470/get-user-ip-in-c-sharp. – GSerg

+1

È sempre possibile convertire manualmente un indirizzo IPv4 in un IPv6: http://www.fnode.com/2009/11/convert-ipv4-into-ipv6/ – Max

risposta

12

Suppongo che stiate parlando di HttpRequest.UserHostAddress. Restituirà sempre l'indirizzo che è stato utilizzato per connettersi a te. Se la richiesta è stata fatta su IPv6, restituirà il loro indirizzo IPv6; se la richiesta è stata fatta su IPv4, restituirà il loro indirizzo IPv4.

Si dovrebbe iniziare indagando sul motivo per cui la richiesta viene effettuata su IPv4. E la gente a http://serverfault.com sarà probabilmente più di aiuto su quello.

6

Un indirizzo IPv4 viene convertito in un indirizzo IPv6 posizionando i 4 ottetti di l'indirizzo IPv4 nei 4 ottetti più a destra dell'indirizzo IPv6.

Dopo aver inserito i 4 ottetti del IPv4 indirizzo nel più a destra 4 ottetti dell'indirizzo IPv6, i rimanenti più a sinistra ottetti sarebbe essere 0 in valore.