ip mysql type

специального типа данных нет, есть две специальные функции:
INET_ATON() и INET_NTOA()
переводят строку с ip в integer и обратно, чтобы хранить адрес в поле int
http://dev.mysql.com/doc/refman/5.0/en/m...


INET_ATON(expr)

Given the dotted-quad representation of an IPv4 network address as a string, returns an integer that represents the numeric value of the address in network byte order (big endian). INET_ATON() returns NULL if it does not understand its argument.

mysql> SELECT INET_ATON('10.0.5.9');
        -> 167773449

For this example, the return value is calculated as 10?2563 + 0?2562 + 5?256 + 9.

INET_ATON() may or may not return a non-NULL result for short-form IP addresses (such as '127.1' as a representation of '127.0.0.1'). Because of this, INET_ATON()a should not be used for such addresses.
Note

To store values generated by INET_ATON(), use an INT UNSIGNED column rather than INT, which is signed. If you use a signed column, values corresponding to IP addresses for which the first octet is greater than 127 cannot be stored correctly. See Section 11.2.6, “Out-of-Range and Overflow Handling”.

INET_NTOA(expr)

Given a numeric IPv4 network address in network byte order, returns the dotted-quad representation of the address as a string. INET_NTOA() returns NULL if it does not understand its argument.

As of MySQL 5.5.3, the return value is a nonbinary string in the connection character set. Before 5.5.3, the return value is a binary string.

mysql> SELECT INET_NTOA(167773449);
        -> '10.0.5.9'

-------------
http://www.mysql.ru/webboard/index.html?...