Преобразование IP-адресов в PHP и MySQL

Формат IP-адреса достаточно удобен для человека: четыре цифры, разделенные точками. Однако такой формат очень не удобен при программировании, поэтому IP-адреса преобразуют в обычное число для удобства.

Рассмотрим какие инструменты для этого применяются.

PHP
Функция php ip2long – переводит ip-адрес в число, а php-функция long2ip выполняет обратное преобразование из числа в ip-адрес.
Ip-адрес, преобразованный первой функцией, можно записать в базу данных в числовое поле, что гораздо удобнее и эффективнее по сравнению с символьным типом.

ip2long('2.60.255.255'); //возвратит 37552127.
long2ip( '37552127' ); //возвратит 2.60.255.255.

MySQL
В языке MySQL есть аналог php-функции ip2long, позвозяющий переобразовать ip-адрес в число, это функция MySQL INET_ATON, а обратное преобразование числа в ip-адрес осуществляется с помощью mysql-функции INET_NTOA.

SELECT INET_ATON( '2.60.255.255' ) - возвратит 37552127.
SELECT INET_NTOA( '37552127' )  -возвратит 2.60.255.255.

Tags: ,

Comments are closed.