Flawless adlı üyeden alıntı


function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //proxy kullanmıyorsa alacagın ip
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //proxy kullanıyorsa çekeceği ip adresi
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}



açıklamalara yazdım gerçi ama anlatayım yukardaki fonksiyon ile high+k olmayan proxylere ait ip adresini alırsın ancak yüksek korumalı özel proxylerde http_x_forwarded_for kısmı da boş olacağından alacağın değer gene proxy adresi olacaktır.umarım anlatabilmişimdir.Sorun olursa yazarsın cevaplarım.


Gayet iyi anlattınız hıcam. Teşekkür ederim. Fakat peki ben şunu nasıl yapabilirim:
Kullanıcı üye girişi yaptığında bir post ekranı ile karşılaşacak eğer oradan örneğin mesaj gönderirken ip adresini o yazmadan alabilmem gerek ve bu ip adresi proxy olmamalı.

$ip_adresi = $ip;

function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //proxy kullanmıyorsa alacagın ip
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //proxy kullanıyorsa çekeceği ip adresi
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;

$ip_adresi = $_POST["ip"];
$sorgu = mysql_query("insert into tablo_Adi (ipadress) values ('$ip_adresi')");
}


Şu anda deneyebilme imkanım yok ama yukarıda ki gibi yaparsam benim ip adresimi mi gösterir yine, yoksa formu dolduran kişinin mi?