Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R的IP地址的纬度和经度_R_Ip Address_Latitude Longitude - Fatal编程技术网

使用R的IP地址的纬度和经度

使用R的IP地址的纬度和经度,r,ip-address,latitude-longitude,R,Ip Address,Latitude Longitude,我有一个巨大的IP地址列表。有没有一种方法可以使用R来获取这些地址的相应纬度和经度 多谢各位 拉维看看或 他们提供API从IP地址获取lat/long。(虽然不是R-specific)有一个函数ipListLookup这是一个有价值的商业过程,因此任何在线API查找要么a)昂贵,要么b)缓慢 您的最佳选择可能是下载MaxMind City IP数据库: 获取GeoLite City——这个CSV版本包含两个文件,一个将IP地址块映射到位置ID,另一个将位置ID映射到城镇和纬度坐标。e、 g:

我有一个巨大的IP地址列表。有没有一种方法可以使用R来获取这些地址的相应纬度和经度

多谢各位

拉维

看看


他们提供API从IP地址获取lat/long。(虽然不是R-specific)

有一个函数
ipListLookup

这是一个有价值的商业过程,因此任何在线API查找要么a)昂贵,要么b)缓慢

您的最佳选择可能是下载MaxMind City IP数据库:

获取GeoLite City——这个CSV版本包含两个文件,一个将IP地址块映射到位置ID,另一个将位置ID映射到城镇和纬度坐标。e、 g:

startIpNum,endIpNum,locId
"16777216","16777471","17"
"16777472","16777727","104084"
"16777728","16778239","49"
它告诉您第二个块范围内的IP位于:

104084,"CN","07","Fuzhou","",26.0614,119.3061,,
因此,您所需要做的就是编写一些R代码来读取这些数据库,将虚线IP地址编码为此处使用的形式(可能是32位整数),并进行几次查找。您可以通过使用data.table获得最佳性能,或者将其全部放在SQL数据库中,或者使用C API将一些C代码写入文件的二进制版本,并通过Rcpp或其他魔术将其与R链接

天哪,有人已经这么做了

天哪!!有人把它做成了一个包裹:

请注意,最后两个解决方案使用数据库的本地副本,而不是查询网页,因此不会受到限制


我刚刚让GeoIP包工作得非常简单,而且速度很快。您可能需要更新它附带的DB文件,或者它可能是足够最新的。该软件包无需其他下载即可工作。

只需使用文档中给出的示例尝试ipListLookup。此功能似乎非常慢。一个有5个IP地址的数据帧花了我将近2分钟的时间。我有接近200K的IP地址,我需要这些地址的纬度和经度,这个函数会非常耗时。有没有更有效的方法来获取纬度和经度?geoIP的帮助告诉您它正在查询ipinfo.com的API。如果你去看他们的文档,他们会说“每秒超过2次的查询将被放入“队列”。你可以暂停一下循环你的R查询,但这仍然需要一天的时间。目前,我只寻找基于R的解决方案。如果R不起作用,我一定会尝试一下。freegeoip.net适用于任何可以发出HTTP GET请求的语言。我很确定它可以在R中实现。这个GeoIP包不再工作了。。。显示帐户已挂起的消息。。。我猜作者在写这篇文章的时候和DB有个交代。。。你现在有什么解决方案吗?