Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

REMOTE_ADDR og X_FORWARDED_FOR servervariabler

3 views
Skip to first unread message

Rune Jensen

unread,
Sep 8, 2012, 6:54:07 AM9/8/12
to
Man kan åbenbart bruge en ikke-dokumenteret feature til at hente
informationer om IPen bag en proxy. Den hedder HTTP_X_FORWARDED_FOR,
og gemmer den IP, som taler med en proxy (hvor proxiens IP vil ligge i
REMOTE_ADDR, hvis det er).

Da X_FORWARDED_FOR er en variabel, som kan ændres af brugeren, og da
den iøvrigt er op til proxien at sætte også, er den ikke pålidelig på
samme måde.

Men jeg er også mere interesseret i, bare at få en værdi, som er den
samme for den samme bruger, og som ikke er lig med REMOTE_ADDR, hvis
brugeren er bag en proxy.

Så jeg lavede følgende udfra oplysninger på nettet:

Function RetrieveIP
IP_REQUEST = Request.Servervariables("REMOTE_ADDR")
FORWARDED_FOR = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

If FORWARDED_FOR = "" Then
RetrieveIP = IP_REQUEST
Else
RetrieveIP = FORWARDED_FOR
If inStr( RetrieveIP,",")>0 Then
RetrieveIP = Split( RetrieveIP,",")(0)
End If
End If
End Function

Nu skal det testes, selvfølgelig, men er der en mere optimal måde at
gøre det på?

Og der KAN forekomme kommaseparerede IPer i FORWARDED_FOR (så vidt jeg
forstår), hvis nu det er en legal proxy, som følger forskrifterne om
at oplyse om oprindelig IP i FORWARDED, er det så korrekt, at vælge
den første IP i arrayet?

PS: Opera oplyser oprindelig IP i X_FORWARDED_FOR, så det er altså
ikke verdens bedste anonyme proxy :)


MVH
Rune Jensen
0 new messages