此php源码是借助ipip.net的ip查询功能写的,通过post提交参数,获取返回页,然后利用正则(只会一点点)匹配出相对应的信息,有些信息,比如时区那些正则不会写,就没写出来。

1.调用方式
.php?u=需要查询的域名/ip
例如:
.php?u=baidu.com
.php?u=114.114.144.144

2.返回状态
ret:ok 返回data 查询成功
ret:err 返回msg 查询失败

3.成功返回值

{"ret": "ok","data": {"数据来源": "城市级信息(数据来源于旗舰版)","IP": "111.161.64.48","地理位置": "中国天津","运营商": "联通"}
}

4.失败返回值

{"ret": "err","msg": "查询失败,请检查输入是否有误!"
}

5.PHP源代码

<?php
$url = "https://www.ipip.net/ip.html";
$checkUrl = $_GET['u'];//Curl post函数请求获取返回值
$result = curl_post(false,$url,$post_data=array("ip"=>$checkUrl),"");//获取返回源码中的ip
preg_match_all('/html\">(\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3})</',$result,$arrIp);
if(count($arrIp[1][0]) <= 0 ) die(json_encode(array("ret"=>"err","msg"=>"查询失败,请检查输入是否有误!")));//获取相关信息
preg_match_all('/;\">(\S+)<\/span>/',$result,$arrMsg);$ip = $arrIp[1][0];         //IP
$form = $arrMsg[1][0];         //数据来源
$position = $arrMsg[1][1];     //地理位置
$isp = $arrMsg[1][2];      //运营商//如果返回值 不包括 '所有者/运行商'字符串则可以得到运营商
if(!stristr($result,'所有者') && stristr($result,'运营商')!=false){echo json_encode(array("ret"=>"ok","data"=>array("数据来源"=>$form,"IP"=>$ip,"地理位置"=>$position,"运营商"=>$isp)));
}else{  echo json_encode(array("ret"=>"ok","data"=>array("数据来源"=>$form,"IP"=>$ip,"地理位置"=>$position)));
}/*** curl模拟post进行 http 或 https url请求(可选携带表单,cookie)* string $url* string $cookie* array $post_data* $post_data = array("key1"=>"value1","key2"=>"value2")  //表单以数组类型传输* bool $type=true or $type=false //请求类型:true为http请求,false为https请求 */
function curl_post($type=true,$url, $post_data, $cookie) {//type与url为必传  ,表单post_data数组,和cookie字符串选传if (empty($url)) {return false;}if(!empty($post_data)){$params = '';foreach ( $post_data as $k => $v ) { $params.= "$k=" . urlencode($v). "&" ;}$params = substr($params,0,-1);} $ch = curl_init();//初始化curlcurl_setopt($ch, CURLOPT_URL,$url);//抓取指定网页curl_setopt($ch, CURLOPT_HEADER, 0);//设置headercurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上if(!$type){  //判断请求协议http或httpscurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);  // 从证书中检查SSL加密算法是否存在}curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器if(!empty($cookie))curl_setopt($ch,CURLOPT_COOKIE,$cookie);  //设置cookieif(!empty($post_data))curl_setopt($ch, CURLOPT_POSTFIELDS, $params); //设置表单curl_setopt($ch, CURLOPT_POST, 1);//post提交方式$data = curl_exec($ch);//运行curlcurl_close($ch);return $data;
}
?>

PHP-基于ipip.net制作的IP查询接口源码相关推荐

  1. PHP百度收录量查询接口源码,百度收录量API查询PHP源码

    百度收录量API查询PHP源码 /* Plugin Name:百度收录量 Version:1.0 Description:根据域名返回百度收录量 Author:绿游 Author URL:http:/ ...

  2. PHP域名权重查询接口源码

    介绍: 这是一款查询百度权重情况接口源码 调用的爱站网的接口 可以查询任意网站权重是多少的接口源码. 网盘下载地址: http://kekewangLuo.cc/mvxUET5dqyd0 图片:

  3. PHPICP备案查询接口源码

    <?php header("Content-Type:text/json;charset=UTF-8"); $domain = $_GET['domain']; $api = ...

  4. 2023 首发 新版 抖音权重查询接口源码v2.1 附接口

    最近爆火的抖音权重限流查询,输入抖音主页链接即可查询作品情况,不清楚的兄弟可以去抖音搜索"权重"看直播间,一场直播都是几万票,折算下来几千,赶快抓住风口吃肉.目前后台系统已经写好, ...

  5. PHP快递单号查询接口源码指导(快递鸟 API)

    最近进行网站后台开发,需要实现物流的即时查询, 为了方便以后的业务需求,经过比较,最后选择使用第三方快递鸟查询接口服务商. 同时,在此进行整理,希望能帮到有需求的道友们,谢谢! 最近进行网站后台开发, ...

  6. java计算机毕业设计基于安卓Android的城市公交查询app(源码+系统+mysql数据库+Lw文档)

    项目介绍 本课题城市公交线路查询,采用安卓平台,所完成的可扩展性.可靠性以及可重用性的城市公交线路查询系统,以满足现实生活的需要.数据库选用MySQL. 前端为移动端,采用安卓框架uniapp,开发软 ...

  7. PHP百度收录量查询接口源码,PHP百度收录量查询接口源码

    怕小白不懂,使用实例:域名/1.php?domain=emoliang.com $domain = (isset($_GET['domain']))?$_GET['domain']:$_POST['d ...

  8. 基于Android开发的星座查询APP源码

    本项目是一个基于安卓的星座运势查询项目源码,功能主要是星座查询,星座性格特点,联网实现的星座运势查询,和星座相关美图展示. 文件:url80.ctfile.com/f/25127180-7404788 ...

  9. 最新智云全能API接口查询PHP源码V1.1

    介绍: 1.[一言/随机语录]2.[必应每日一图]3.[域名是否已注册查询接口]4.[m3u8视频在线解析]5.[随机生成二次元图片]6.[快递查询-支持国内百家快递]7.[二维码图片生成]8.[抖音 ...

  10. php 本地mysql 代码_基于本地数据库的 IP 地址查询 PHP 源码

    * 纯真 IP 数据库查询 * * 参考资料: * - 纯真 IP 数据库 http://www.cz88.net/ip/ * - PHP 读取纯真IP地址数据库 http://ju.outofmem ...

最新文章

  1. Pri3D:一种利用RGB-D数据固有属性完成3D场景感知的表示学习方法
  2. dock run mysql v3_docker run mysql成功,但是3306端口不通?
  3. angular2 组件之间通讯-使用服务通讯模式 2016.10.27 基于正式版ng2
  4. 【ESSD技术解读】 云原生时代,阿里云块存储 ESSD 快照服务如何被企业级数据保护所集成?
  5. Spring如何处理线程并发
  6. 简要分析光端机选购必备条件
  7. ASP.NET WebAPi之断点续传下载(上)
  8. java 爬虫_探索Java 多线程爬虫及分布式爬虫架构
  9. 删除计算机文件的几种方法,电脑删除不了文件怎么办?教你几种好的处理方法,一学就会...
  10. 有了这些接口测试用例+工具,测试效率想不提升都难
  11. 牛客网暑期ACM多校训练营(第二场): H. travel(树形线头DP)
  12. 【遗传算法】求解TSP问题
  13. 大数据讲课笔记5.5 MR案例——倒排索引
  14. 元宇宙产业化还很遥远
  15. html标签属性可以省略,html部分---通用标签与属性;
  16. 人员招聘与培训实务【2】
  17. PPT最强抠图技巧(收藏必备)
  18. T检验,方差分析,非参数检验,卡方检验,方差分析总结
  19. 岭南师范学院专插本计算机,2019年岭南师范学院专插本招生专业
  20. ntlm java_Java Web服务NTLM身份验证

热门文章

  1. 快速开发一个混合APP(Hybrid APP)
  2. Express全系列教程之(十):渲染jade模板引擎
  3. python数据科学手册pdf中文版百度云,Python数据科学手册 英文pdf源码
  4. DB2 JDBC Driver 必需的字符转换器不可用
  5. dstwo linux 模拟器,dstwo md模拟器使用图文教程
  6. 5.1 Lilypond五线谱
  7. 2021年山东大学考研数字电路906真题
  8. matlab能不能查焓湿图,焓湿图上,湿球温度要怎么查呢?
  9. 北大青鸟学java是用什么课程_来自北大青鸟参加过JAVA课程的学长建议
  10. 《现代操作系统(中文第三版)》课后习题——第二章 进程与线程