Для эффективности и безопасности вы можете хранить и работать с IP-адресами в виде целых в вашей базе данных.
Простой способ хранения IP-адресов - использовать поле varchar в вашей БД. Однако другой способ представления IP-адресов - это целое число. Преобразование предоставленного IP-адреса таким образом обезврежит его, а также повысит эффективность хранения и запросов. Хранение INT занимает меньше места в БД и работает лучше для индексации, и я считаю, что кеширование запросов.
Проверьте ip2long и long2ip для преобразования функций PHP, и inet_aton и inet_ntoa для этого в MySQL.
Итак, процесс может идти как
$user_ip=ip2long($_SERVER['REMOTE_ADDR']);
if(!$user_ip){ //returned false due to odd input
echo 'wtf, yo';
}
else{
//do your query
}
Вы также можете очистить IP-адрес и сохранить его в первоначальной точечной четырехугольной форме, комбинируя два
$user_ip=long2ip(ip2long($_SERVER['REMOTE_ADDR']));