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地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值