webForumDet fria alternativet

Ip

8 svar · 389 visningar · startad av Picklezz

PicklezzMedlem sedan jan. 2002448 inlägg
#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...

PicklezzMedlem sedan jan. 2002448 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?

GunnarDMedlem sedan juni 20014 250 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)

PicklezzMedlem sedan jan. 2002448 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???

DuvaMedlem sedan maj 2002858 inlägg
#5

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

GunnarDMedlem sedan juni 20014 250 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.

CactuzMedlem sedan okt. 2001635 inlägg
#7

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

GunnarDMedlem sedan juni 20014 250 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;
}
NiklassonMedlem sedan nov. 2000823 inlägg
#9
$ip = getenv("REMOTE_ADDR");
Genererad på 367 ms · cache AV · v20260730165559-full.f96bc7eb