Скорее всего, вы используете 32-битную версию PHP, которая портит IP-адрес. Попробуйте выполнить преобразование внутри mysql, в котором проблема не возникает:
$ip = mysql_real_escape_string('127.0.0.1');
$sql = "INSERT INTO yourtable (ip) VALUES (INET_ATON('$ip'));";
Другая альтернатива состоит в том, чтобы заставить PHP обрабатывать его как целое число без знака, как указано в примечаниях на справочной странице ip2long : $ip = sprintf('%u', ip2long($ip));
Также помните, что IPv6 будет широко распространен "в любой день", и вам нужно будет использовать 128-битное целое число для хранения этих значений (которые MySQL не поддерживает - это должны быть две 64-битные сигнатуры в как минимум).