PHP socket 编程之使用ip进行地址查询

使用ip进行地址查询

要想使用ip进行地址查询,需要连接GeoIP数据库。本文将使用freegroip.net提供的简单在线服务。

【示例】:找到用户的地理位置

<?PHP
       function show_ip_info($ip){
              //发出服务请求并输出结果,该网站请求的url按照http://freegeoip.net/{数据格式}/{要查询的ip地址}的格式。返回的数据格式是csv、xml、或者json。
              $url = 'http://freegeoip.net/csv/'.$ip;
              //打开连接
              $fp = fopen($url,'r');
              $read = fgetcsv($fp);
              //关闭连接
              fclose($fp);
              echo "
                     <p>
                            IP Address:$ip</br>
                            Country:$read[2]</br>
                            City,State:$read[5],$read[3]</br>
                     </p>
              ";
       }
       show_ip_info($_SERVER['REMOTE_ADDR']);
       $url = 'www.sdust.com';
       show_ip_info(gethostbyname($url));
 ?>


注意:
1. 使用web服务的要点是明白使用什么URL和返回什么结果。为了便于调试,可以使用浏览器加载该服务以确认服务返回的结果。

2. IP地址并不是可靠的,比如,有时同一网络中的多个用户可能在外面看起来使用同一个IP地址。

3. 获得某个IP地址对应的域名,可以使用gethostbyaddr()函数。

4. 如果一个URL指向的站点运行在多个服务器上gethostbynamel()函数会返回所有的IP地址。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。