2009-10-16 18 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地址。