当前位置: 首页 > 面试题库 >

基于IP地址的地理位置-PHP

杜思远
2023-03-14
问题内容

我们正在寻找一种快速准确的方法来根据访问者的IP获取访问者的位置。

我们已经尝试过ipinfodb.com,但在调用API时,其API使我们的网站严重滞后。

您还建议其他哪些服务?


问题答案:

获取Geo-IP信息

请求地理IP服务器(netip.de)进行检查,并返回IP所在的位置(主机,州,国家/地区,城镇)。

<?php
       $ip='94.219.40.96';
       print_r(geoCheckIP($ip));
       //Array ( [domain] => dslb-094-219-040-096.pools.arcor-ip.net [country] => DE - Germany [state] => Hessen [town] => Erzhausen )

       //Get an array with geoip-infodata
       function geoCheckIP($ip)
       {
               //check, if the provided ip is valid
               if(!filter_var($ip, FILTER_VALIDATE_IP))
               {
                       throw new InvalidArgumentException("IP is not valid");
               }

               //contact ip-server
               $response=@file_get_contents('http://www.netip.de/search?query='.$ip);
               if (empty($response))
               {
                       throw new InvalidArgumentException("Error contacting Geo-IP-Server");
               }

               //Array containing all regex-patterns necessary to extract ip-geoinfo from page
               $patterns=array();
               $patterns["domain"] = '#Domain: (.*?)&nbsp;#i';
               $patterns["country"] = '#Country: (.*?)&nbsp;#i';
               $patterns["state"] = '#State/Region: (.*?)<br#i';
               $patterns["town"] = '#City: (.*?)<br#i';

               //Array where results will be stored
               $ipInfo=array();

               //check response from ipserver for above patterns
               foreach ($patterns as $key => $pattern)
               {
                       //store the result in array
                       $ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : 'not found';
               }

               return $ipInfo;
       }

?>


 类似资料:
  • 问题内容: 我已经在Web项目的jsp / servlet中创建了一个登录应用程序,我想知道访问我的登录页面的不同用户的地理位置。我怎么知道某个人正在从哪里访问我的登录页面?例如:如果某人正在访问加拿大的页面,那么一条记录将插入到我的数据库中,例如:IP:20.4.9.134和位置:Canada。 问题答案: 我用这个: http://freegeoip.net/xml/122.169.8.137

  • 系统需求 就像它的名字"基于IP"所暗示的那样,这样的服务器中每个基于IP的虚拟主机必须拥有不同的IP地址。可以通过配备多个真实的物理网络接口来达到这一要求,也可以使用几乎所有流行的操作系统都支持的虚拟界面来达到这一要求(详情请参见您的系统文档,这种功能一般被称作"IP别名",一般用"ifconfig"命令来进行设置)。 如何配置Apache 有两种配置方法来使apache支持多主机:为每个虚拟主

  • 本文向大家介绍基于JavaScript定位当前的地理位置,包括了基于JavaScript定位当前的地理位置的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js定位当前地理位置的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我正在考虑Rchart/传单创建一个闪亮的应用程序房屋销售在我的县。任何时候都有几百套房子出售。想要为所有人绘制街道地址到地理位置的地图(lat/long)并在地图上显示它们。所以,我正在寻找一个r包,服务或数据库,可以映射街道地址到地理位置。

  • 问题内容: 我需要Java或Ruby中的客户端API。我更 希望 只在本地使用。实际上,它甚至可能不是IP,而是更多的数据库导入。事实是,我无法使用基于Web服务的Web服务,因为这对我来说是太多的I / O。 注意:通过地理位置定位,我真正需要的只是充其量是国家/地区。我也会接受实际的经/纬度坐标。 问题答案: 几个月前,我正在看这些家伙:http : //www.maxmind.com/app

  • 本文向大家介绍PHP基于新浪IP库获取IP详细地址的方法,包括了PHP基于新浪IP库获取IP详细地址的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP基于新浪IP库获取IP详细地址的方法。分享给大家供大家参考,具体如下: 获取IP地址类使用实例 返回结果 PS:这里再为大家提供几款IP地址相关在线工具供大家参考使用: IP地址归属地在线查询工具: http://tools.jb5