webForumDet fria alternativet

Ip

PHPur PHP

8 svar · 389 visningar · startad av Picklezz

Medlem sedan jan. 2002414 inlägg
Frågan#1

Hur gör man för att få fram ip:et när inte $_ENV['HTTP_X_FORWARDED_FOR'] eller $_ENV['REMOTE_ADDR'] vill fungera...
Om jag går in i access.log för apache så visas ju IP på besökaren där...men den vill ju inte visa det på mina sidor...

Medlem sedan jan. 2002414 inlägg
#2

Vafan...får det att fungera om jag kör det som en CGI-modul och inte SAPI-modul...

men nu fattar jag inget alls för när min kompis som har telia adsl går in på sidan så blir $_ENV['HTTP_X_FORWARDED_FOR']ett hans ip, $_ENV['REMOTE_ADDR'] ) blir nått annat som är kopplat till telia...
är det så på alla telia användare?

Medlem sedan juni 20014 290 inlägg
#3

REMOTE_ADDR sätts av webclienten/browsern.
HTTP_X_FORWARDED_FOR sätts av proxy-servrar (oftast Squid)

Proxy servrar kan gå in och ändra dessa variabler, även fast jag inte sett någon som gör så.

Gå inpå den här sidan: Info om dig vad du lämnar.
(det är en php-sida som sapi på en Unix maskin)

Medlem sedan jan. 2002414 inlägg
#4

hur kommer det sig att jag får sånna värden då?
För på min kompis med ip: 217.208.104.200
så får jag
HTTP_X_FORWARDED_FOR = 217.208.104.200
REMOTE_ADDR = 213.65.240.243

Båda är ju Telia IP:en...men jag fattar inte varför REMOTE_ADDR inte blir personens IP???

Medlem sedan maj 20021 141 inlägg
#5

Jag använder Telia och jag får
HTTP_X_FORWARDED_FOR = (inget)
REMOTE_ADDR = 213.65.246.108 (min ip)

Medlem sedan juni 20014 290 inlägg
#6

HTTP_X_FORWARDED_FOR = 217.208.104.200
REMOTE_ADDR = 213.65.240.243

I detta fallet är HTTP_X_FORWARDED_FOR ip-adressen på den som utnyttjar proxyn (klienten/surfaren) och REMOTE_ADDR är proxyns adress. Utåt sett syns endast proxy-servern eftersom det är den som hämtar informationen.

Vissas inget på HTTP_X_FORWARDED_FOR så går man inte via en proxy (telias) och då är REMOTE_ADDR klientens ip-adress.

Medlem sedan okt. 2001670 inlägg
#7

hur gör man om man ska göra ett script som tar reda på besökarens ip då?

Medlem sedan juni 20014 290 inlägg
#8

Snabbt skrivet, finns säker bättre sätt :)

if ($HTTP_X_FORWARDED_FOR=="") {
  $IP=$REMOTE_ADDR;
} else {
  $IP=$HTTP_X_FORWARDED_FOR;
}
Medlem sedan nov. 2000857 inlägg
#9
$ip = getenv("REMOTE_ADDR");
135 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)