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

---------

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

From: Hasan Sertçelik <hasan_at_sertcelik.net>
Date: Thu, 29 Jan 2009 13:43:44 +0200
Message-ID: <49819670.6010706@sertcelik.net>

Merhaba.
Sunucu Loglarýnda
81.82.83.84,192.168.1.5 þeklinde iplere rastlamýþtým.Birinçi ip rooter
,ikinci ip iç aðdaki ip olarak görünüyor anlaþýlan.Yanlýz
$_SERVER['REMOTE_ADDR']; þeklinde kullandýðým script loglarýnda 2 ipye
rastlamadým.

Elvin Þiriyev yazmýþ:
> þ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
>>
>>
>>
>
>
>
>

_______________________________________________
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:36:31 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.