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