Para almacenar la IP en mySQL el formato del campo es: INT(11) signed tras aplicar la función ip2long de PHP:
<?php if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } echo $ip."<br>"; $ip = ip2long($ip); echo $ip; ?>
Esto viene a cuento de que hay IPs que tras aplicarles la función ip2long el número es negativo, y por ahí se recomienda usar un INT(10) unsigned.