2014-03-02 60 views
0

我有大量與Perl腳本進入了一個簡單的 MySQL表,其中IP地址是我可以SELECT什麼是PostgereSQL的「ip <<」?

INET_NTOA(167772161) = '10.01.1.1'

我要選擇的地址落入一個整數BIND9查詢一個特殊的CIDR塊就像我可以在PostgreSQL中做 類似於

WHERE IP << '10.0.0.0/16'"

現在我想要的是找到表中的所有地址,例如10.0.0.0/8或任何網絡塊。

任何想法?

greetings,el

+0

因爲MySQL沒有IP地址的本地數據類型,所以我認爲沒有與該操作符等價的東西。您需要爲此編寫自己的存儲功能。 –

回答

0

您可以在MySQL中使用位移運算符。只需要更多的工作:

select 167772169 >> 16, inet_aton('10.0.0.0') >> 16 

返回網絡地址的相同整數(右移16位)。