[Linux-programlama] PHP'de ip alma hakkýnda

---------

[Linux-programlama] PHP'de ip alma hakkýnda

From: Nuri Akman <nuri.akman_at_hazine.gov.tr>
Date: Thu, 29 Jan 2009 13:03:39 +0200
Message-ID: <49818D0B.2000204@hazine.gov.tr>

Arkadaþlar,

Aþaðýdaki PHP fonksiyonuyla kullanýcý sisteme girdiðinde IP'sini
alýyorum ve bir session deðiþkeninde saklýyorum. Kullanýcý ikinci bir
diðer sayfaya týkladýðýnda bu fonksiyonu çaðýrarak tekrar IP'sini
alýyorum ve Session deðiþkeni ile karþýlaþtýrarak IP'nin deðiþip
deðiþmediðini kontrol ediyorum.

Kullanýcýlarýmýn birinde þöyle bir durum oluþtu:
getip() fonksiyonu deðer doðru bir þekilde IP bilgisini alýyor ve
Session deðiþkeninde saklýyor (Örnek: 123.123.123)
Ýkinci bir sayfaya girdiðimde Session deðiþkeni ayný deðeri korurken
(123.123.123.123) getip() fonksiyonum bana þu sonucu döndürüyor:
123.123.123.123, localhost

Bu durumda karþýlaþtýrma yaptýðým zaman "123.123.123.123" ==
"123.123.123.123, localhost" ayný olmadýðý için hataya düþüyor.

Sorunu tespit ettim ve localhost ifadesini çýkararak çözdüm. Ancak,
getip() fonksiyonunun ilk çalýþmasýnda gelen sonuç ile ikindi bir
sayfada çalýþtýrdýðýmda gelen sonucun farklý olmasýný anlayabilmiþ deðilim.

SORULAR:
1.) Sizler böyle bir sorun yaþadýnýz mý?
2.) aþaðýdaki getip() fonksiyonu yerine önerebileceðiniz bir baþka þey
olabilir mi?

Selamlar,
Nuri AKMAN

*function getip() {*
     if (getenv("HTTP_CLIENT_IP") &&
strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
     $ip = getenv("HTTP_CLIENT_IP");
 
     else if (getenv("HTTP_X_FORWARDED_FOR") &&
strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
     $ip = getenv("HTTP_X_FORWARDED_FOR");
 
     else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"),
"unknown"))
     $ip = getenv("REMOTE_ADDR");
 
     else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR']
&& strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
     $ip = $_SERVER['REMOTE_ADDR'];
 
     else
     $ip = "unknown";
 
     return($ip);
*} //getip*

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Thu 29 Jan 2009 - 11:56:53 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.