我拥有数十万个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