我在数据库中有一个表(sessions
),其第一列包含数字IP地址,如:
_____________
| srcIP |
-------------
| 167973143 |
| 167973187 |
| 167971450 |
-------------
显示我正在使用以下查询的IP地址
mysql> select srcIP from sessions;
我应该使用INET_NTOA来获取虚线的ip地址,但是用虚线ip地址显示整列的查询应该是什么?
答案 0 :(得分:3)
SELECT INET_NTOA(srcIP) FROM sessions
答案 1 :(得分:0)
发现这个例子:inet_ntoa() - 将点号和数字字符串中的IP地址转换为结构in_addr并返回
您需要的是一个将IP地址转换回虚线形式的功能。您需要哪种功能取决于您使用的编程语言 - 它本身不能在SQL中完成!
在PHP中你可能想要使用long2ip()...
答案 2 :(得分:0)
Stefan Gehrig在MySQL中的答案显然更好,但总的来说,你可以使用:
select cast((srcIp/16777216) & 255 as varchar) + '.'
+ cast((srcIp/65536) & 255 as varchar) + '.'
+ cast((srcIp/256) & 255 as varchar) + '.'
+ cast(srcIp & 255 as varchar)
from sessions
将数字转换为IPv4地址。