2009-10-16 55 views
1

我在一个数据库中,其第1列包含数字的IP地址,就像有一个表(sessions)的一整列:INET_NTOA在数据库

_____________ 
| srcIP  | 
------------- 
| 167973143 | 
| 167973187 | 
| 167971450 | 
------------- 

要显示的IP地址,我使用下面的查询

mysql> select srcIP from sessions; 

我应该使用INET_NTOA来获得虚线的IP地址,但是应该用查询来显示带有虚线IP地址的整个列?

回答

0

发现这个例如:INET_NTOA() - 从一个点和数字符串转换IP地址的结构组in_addr和背部

你需要的是一个转换的转换IP-地址的回功能虚线的形式。你需要哪个函数取决于你使用的编程语言 - 它不能在SQL中完成!

在PHP中,你可能会想使用long2ip()...

0

斯特凡·格里克的答案是在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地址。