[Linux-programlama] Re: PHP'de ip alma hakkında

---------

[Linux-programlama] Re: PHP'de ip alma hakkında

From: Elvin Åžiriyev <elvin_at_siriyev.net>
Date: Thu, 29 Jan 2009 13:25:36 +0200
Message-ID: <ded068c00901290325x29987413l58bbe22588bc188d@mail.gmail.com>

þimdiye kadar ip için sadece $_SERVER['REMOTE_ADDR']; ifadesini
kullandým. herhangi bir sýkýntý da yaþatmadý bana. içinde (,) olmasý
geçersiz kýlar bu ip'yi, net bilgim olmamasýna raðmen ifadenin
herzaman ve geçerli ip döndürmesi gerekiyor. ip'siz bir istem
olamayacaðýný sanýyorum. tabi buna sunucu bölümündeki arkadaþlar daha
net cevap verebilirler.

2009/1/29 Nuri Akman <nuri.akman_at_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
>
>

-- 
Elvin Þiriyev
http://siriyev.net
_______________________________________________
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 - 12:18:09 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.