ip mysql type
Primary tabs
специального типа данных нет, есть две специальные функции:
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?...
- Log in to post comments
- 2742 reads