超简单的php获取ip地址信息的接口范例

通过php获取ip所属地的接口,要是自己弄一个ip库的话,会比较麻烦,而且需要经常更新,所以不现实。网上找了一些接口,发现好多都不能用了,于是自己写了一个,通过抓ip138页面来提取信息。只要它不改版,这个就能永久有效。

响应比较快,小网站用此接口完全没有问题,代码如下:

<?php
 header("Content-type:text/html;charset=utf-8");
 $ip = checkip(@$_GET['ip']);
 if(!$ip)
 {
  exit( json_encode( array('error'=>1, 'msg'=>'参数ip不正确') ) );
 }
 $url = 'http://www.ip138.com/ips1388.asp?ip='.$ip.'&action=2';
 $ipInfo = file_get_contents($url);
 $ipInfo = iconv('gb2312', 'utf-8', $ipInfo);
 preg_match('/<li>本站主数据:(.*)<\/li><li>/i', $ipInfo, $info);
 if($info[1])
 {
  exit( json_encode( array('error'=>0, 'pos'=>$info[1]) ) );
 }
 else
 {
  exit( json_encode( array('error'=>1, 'msg'=>'解析失败') ) );
 }

 /**
  * 验证ip格式是否正确
  */
 function checkip($ip)
 {
  $ip = substr($ip, 0, 15); //ipv4最多只有这么长
  if( !preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $ip) )
  {
   return false;
  }
  else
  {
   return $ip;
  }
 }
?>

访问形式为:localhost/ip.php?ip=xxx.xxx.xxx.xxx。带一个参数就行了,返回为json格式的数据

时间: 2024-10-22 08:09:08

超简单的php获取ip地址信息的接口范例的相关文章

Python调用Ip138获取IP地址信息例子

例子  代码如下 复制代码 #!/usr/bin/env python # -*- coding: utf-8 -*- from sys import exit import urllib2 import re def ip():     url = "http://1111.ip138.com/ic.asp"     code = urllib2.urlopen(url).read()     ip = re.search('\d+\.\d+\.+\d+\.\d+',code).gr

PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)_php实例

如下所示: <?php $data = '254.254.254.254'; echo ip2long($data); function getIP() { if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); elseif(getenv

淘宝IP地址库API接口 (PHP)通过ip获取地址信息

淘宝IP地址库网址:http://ip.taobao.com/ 提供的服务包括: 1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家.省.市和运营商. 2. 用户可以根据自己所在的位置和使用的IP地址更新我们的服务内容. 接口说明: 1. 请求接口(GET方式): http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 2. 响应信息(json格式数据): 国家 .省(自治区或直辖市).市(县).运营商

PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)

如下所示: <?php $data = '254.254.254.254'; echo ip2long($data); function getIP() { if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); elseif(getenv

ip地址-如何在QQ2015中获取IP地址 2014也行

问题描述 如何在QQ2015中获取IP地址 2014也行 小弟十分想知道如何在当前版本中获取qq所在地的IP地址.听说网上有能根据qq查实际姓名等信息的原理是什么 解决方案 首先要和对方不断的聊天,然后打开命令提示符(开始,运行,输入cmd.或在开始菜单==>所有程序==>附件=>命令提示符)...然后输入一下命令 netstat -n 此时我们可以看到一栏IP地址: Active Connections Proto Local Address Foreign Address State

电脑无法自动获取IP地址怎么办?

故障排查: 由于笔者公司的客户机是通过DHCP服务器自动获取IP地址的,所以出现这种提示信息应该是客户机没有分配到IP地址所致.在"运行"中键入 "cmd",进入"命令窗口",输入"ipconfig"回车,发现此台电脑目前所使用的IP地址是"169.254.0.6",这个结果证实了笔者先前 的判断,因为客户机如果四次向DHCP服务器发出请求,而未得到响应,那么系统会自动分配一个范围在169.254.0.1到

Python获取IP地址的三种方法

  在python中获取IP地址的方法很简单,我们只和gethostbyname和gethostbyname_ex两个函数可以实现了,当然也可以利用公网api来实现. 使用拨号上网的话,一般都有一个本地ip和一个外网ip,使用python可以很容易的得到这两个ip 使用gethostbyname和gethostbyname_ex两个函数可以实现  代码如下   import socket localIP = socket.gethostbyname(socket.gethostname())#这

Windows 8系统有线网卡自动获取IP地址

  设置动画示范教程: Windows 8系统有线网卡自动获取IP地址设置动画 Windows 8系统有线网卡自动获取IP地址的详细设置步骤如下: 第一步:进入Windows 8系统的经典桌面,在电脑桌面右下角找到网络图标,右键点击并选择 打开网络和共享中心.如下图所示: 第二步:弹出 网络和共享中心 的界面,点击 更改适配器设置.如下图所示: 第三步:打开 更改适配器设置后,找到 以太网,右键点击并选择 属性.如下图所示: 第四步:找到并点击 Internet协议版本4(TCP/IPv4),点

Windows7有线网卡自动获取IP地址设置

  设置动画示范教程: Windows 7系统有线网卡自动获取IP地址的详细设置步骤如下: 第一步:鼠标点击电脑桌面右下角小电脑图标,在弹出的对话框中,点击 打开网络和共享中心.如下图所示: 第二步:弹出 网络和共享中心 的界面,点击 更改适配器设置.如下图所示: 第三步:找到 本地连接,右键点击并选择 属性.如下图所示: 第四步:找到并点击 Internet协议版本4(TCP/IPv4),点击 属性.如下图所示: 第五步:选择 自动获得IP地址(O).自动获得DNS服务器地址(B),点击 确定