我擁有數十萬個IP,並且想要確定哪些IP位於特定範圍內。 範圍:SQL中的IP範圍
64.233.160.0/8192
66.102.0.0/4096
66.249.64.0/8192
72.14.192.0/16384
74.125.0.0/65536
209.85.128.0/32768
216.239.32.0/8192
所以我轉換這些範圍爲以下內容:
64.233.160.0 - 64.233.192.0
66.102.0.0 - 66.102.16.0
66.249.64.0 - 66.249.96.0
72.14.192.0 - 72.15.0.0
74.125.0.0 - 74.126.0.0
209.85.128.0 - 209.86.0.0
216.239.32.0 - 216.239.64.0
所以現在我想查詢如果一個IP地址是在這個範圍內的。 SQL不會理解八位字節,所以我不知道該怎麼做。
可以使用一些Hex2Dec/Dec2Hex轉換?
我想這應該是以前做過的事情,我敢肯定我不是第一個嘗試使用ip範圍來識別特定ip的列表。
我會做一下UPS在多個IP地址,所以有些可能是20.0.1.123,另一個可能是124.123.123.1,即八位組的格式是不一樣的
這裏是一個[樣品](http://stackoverflow.com/questions/29740014/query-for-matching-ip-address -in-sql-server) –
什麼味道/版本的SQL? SQL Server,Oracle,mySQL? [mySQL](https://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_inet-aton)可以使用函數INET_ATON將地址轉換爲可用於比較:請注意,這隻適用於IPv4 ...... IPv6必須使用不同的東西。 – xQbert
谷歌大查詢 – Oliver