İstemcinin IP’sinin özel IP (yerel, vpn, vs.) olup olmadığı kontrol etmek için aşağıdaki fonksiyon kullanılabilir.
/** * Checks if an ip is private (local ip addr., etc) or not. * @param string $ip * @param string $ipAsPriv ips which are detected as priv. * @return bool */ function isPrivateIp($ip='',$ipAsPriv=array('','127.0.0.1')) { if(in_array($ip,$ipAsPriv)) return true; return !filter_var($ip,FILTER_VALIDATE_IP,FILTER_FLAG_NO_PRIV_RANGE); }
Örnek:
$ips=array('127.0.0.1','192.168.10.2','78.16.45.76','172.16.33.11'); foreach($ips as $ip) echo $ip.' :'.(isPrivateIp($ip) ? 'private' : 'not private').'<br>';
Örnek çıktıları:
127.0.0.1 :private 192.168.10.2 :private 78.16.45.76 :not private 172.16.33.11 :private