这个问题已经在这里有了答案 :
在SQL Server中存储IP地址的数据类型 (10个答案)
3年前关闭。
在MySQL中存储和检索IP地址的最有效方法是什么?现在我正在做:
SELECT * FROM logins WHERE ip = '1.2.3.4'
其中ip是一个VARCHAR(15)字段。
VARCHAR(15)
有一个更好的方法吗?
对于IPv4地址,您可能需要将其存储为,int unsigned并使用INET_ATON()和INET_NTOA()函数从其数字值返回IP地址,反之亦然。
int unsigned
INET_ATON()
INET_NTOA()
例:
SELECT INET_ATON('127.0.0.1'); +------------------------+ | INET_ATON('127.0.0.1') | +------------------------+ | 2130706433 | +------------------------+ 1 row in set (0.00 sec) SELECT INET_NTOA('2130706433'); +-------------------------+ | INET_NTOA('2130706433') | +-------------------------+ | 127.0.0.1 | +-------------------------+ 1 row in set (0.02 sec)