Oli*_*ver 5 ip hex range google-bigquery
我有数十万个 IP,并且想要确定哪些 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
Run Code Online (Sandbox Code Playgroud)
所以我将这些范围转换为以下内容:
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
Run Code Online (Sandbox Code Playgroud)
所以现在我想查询 IP 地址是否在这些范围内。SQL 不会理解这些八位字节,所以我不知道该怎么做。
可以使用一些 Hex2Dec/Dec2Hex 转换吗?
我想这应该是以前做过的事情,我确信我不是第一个尝试使用 IP 范围识别列表中特定 IP 的人。
我将对多个 IP 地址进行查找,因此有些可能是 20.0.1.123,另一个可能是 124.123.123.1,即八位位组的格式不会相同
您可以使用IP 功能来实现此目的:
PARSE_IP('64.233.160.0') returns 1089052672
Run Code Online (Sandbox Code Playgroud)
然后你可以将它们包装在 BETWEEN 状态。