Bazen projelerinizde ziyaretçinin yada yorum yazanların ip adreslerini loglamak gerekebilir. PHP de ziyaretçinin ip adresini (proxy yada gerçek) hostname rahatça alabiliriz.
Özellikle yorum ve anket uygulamalarında başarılı sonuç verecektir. Sürekli spam gelen ip adresleride cabası. bence bu yöntemle ip ban uygulamasını birleştirmek sizler içinde spam derdinden kurtulma yöntemi olabilir..
Normal ip adresini almak için :
echo $_SERVER['REMOTE_ADDR'];
Hostname almak için:
echo gethostbyaddr($_SERVER['REMOTE_ADDR']);
Proxy kullanan ziyaretçinin gerçek ip adresini ögrenmek için:
<?
function real_ip_adress() {
global $HTTP_SERVER_VARS;
$gizli_ipler = array( ‘10.0.0.’, ‘192.168.’, ‘127.0.0.’, ‘172.16.0.’ );
if( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != ” ) {
$ip_strings = explode( ‘,’,$_SERVER['HTTP_X_FORWARDED_FOR']);
foreach($ip_strings as $k => $v) {
if( empty($v) ) {
unset( $ip_strings[$k] );
} else {
if(!isset($ip_string)) {
$ip_string = $v;
}
}
}
}
if( isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] != ” ) {
$ip_strings[] = $_SERVER['REMOTE_ADDR'];
if(!isset($ip_string)) {
$ip_string = $_SERVER['REMOTE_ADDR'];
}
}
foreach($ip_strings as $k1 => $ip) {
foreach($gizli_ipler as $k2 => $pip) {
if(strpos($ip, $pip) === 0) {
unset($ip_strings[$k1]); break;
}
}
}
if(!empty($ip_strings) ) {
foreach( $ip_strings as $v ) {
if(!empty($v)) {
$ip_string = $v;
$is_local_ip = false;
break;
}
}
} else {
$is_local_ip = true;
}
return $ip_string;
}
$ip = real_ip_adress();echo ‘IP Adresi : ‘.$ip;
?>
İlginizi Çekebilir










