【发布时间】:2014-12-18 04:41:08
【问题描述】:
我有一个 IP 地址数据集 (dat),其格式如下:
Person IP_Address
267 555.66.44.222
299 111.222.55.22
513 222.111.8.777
524 888.88.333.222
我还有一个 IP 地址数据库 (db),其格式如下:
First_IP_Address_In_Netblock Last_IP_Address_In_Netblock Latitude Longitude
16777216 16777471 -27.48333 153.01667
16777472 16778239 26.06139 119.30611
16778240 16779263 -37.814 144.96332
16779264 16781311 23.11667 113.25
16781312 16785407 35.689506 139.6917
16785408 16793599 23.11667 113.25
16793600 16797695 34.38528 132.45528
16797696 16798719 35.689506 139.6917
16798720 16799743 34.38528 132.45528
16799744 16799999 35.689506 139.6917
我的问题有两个: 1) 如何转换 IP 地址(来自数据集或数据库),以使它们具有相同的格式? 2)我怎样才能将每个人的经纬度匹配起来?第二个问题难倒我,因为每个坐标都与 IP 地址范围(从网络块中的第一个 IP 地址到网络块中的最后一个 IP 地址)相关联,而不是单个地址。
【问题讨论】:
-
请参阅this question 将 IP 地址转换为整数。然后您只需要按范围查看,因为 IP 地址通常以块的形式分配,因此它们共享一个位置。
-
另外,您的示例 IP 地址不是有效的 IP 地址也无济于事。每个数字应介于 0-255 之间。
标签: r ip ip-address