[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.