PHP socket 编程之使用ip进行地址查询
2015-04-08 22:01
676 查看
使用ip进行地址查询
要想使用ip进行地址查询,需要连接GeoIP数据库。本文将使用freegroip.net提供的简单在线服务。
【示例】:找到用户的地理位置
注意:
1. 使用web服务的要点是明白使用什么URL和返回什么结果。为了便于调试,可以使用浏览器加载该服务以确认服务返回的结果。
2. IP地址并不是可靠的,比如,有时同一网络中的多个用户可能在外面看起来使用同一个IP地址。
3. 获得某个IP地址对应的域名,可以使用gethostbyaddr()函数。
4. 如果一个URL指向的站点运行在多个服务器上gethostbynamel()函数会返回所有的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地址。
相关文章推荐
- 在php中直接使用socket编程对memcached缓存进行增删改查数据
- Socket编程之-------查询正在使用的端口号??
- Socket编程---使用无连接的数据报(UDP) 进行通信(转)
- Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)
- socket编程小问题:地址已经被使用——Address already in use
- socket编程小问题:地址已经被使用——Address already in use
- socket编程小问题:地址已经被使用——Address already in use
- iphone使用开源代码Asyncsocket进行socket编程
- iphone使用开源代码Asyncsocket进行socket编程 之二
- 使用PHP与XML进行网站编程(1)
- 使用 Python 进行 socket 编程
- 使用开源代码IOS进行SOcket编程
- php PDO使用bindValue进行模糊查询问题
- (转载)Linux网络编程-使用gethostbyaddr,通过ip地址,得到该ip地址的主机的信息
- iphone使用开源代码Asyncsocket进行socket编程 之二
- SOCKET 编程 获取本机IP 地址
- iphone使用开源代码Asyncsocket进行socket编程
- 使用c#进行socket编程时,获取网卡的信息