PHP-基于ipip.net制作的IP查询接口源码
此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查询接口源码相关推荐
- PHP百度收录量查询接口源码,百度收录量API查询PHP源码
百度收录量API查询PHP源码 /* Plugin Name:百度收录量 Version:1.0 Description:根据域名返回百度收录量 Author:绿游 Author URL:http:/ ...
- PHP域名权重查询接口源码
介绍: 这是一款查询百度权重情况接口源码 调用的爱站网的接口 可以查询任意网站权重是多少的接口源码. 网盘下载地址: http://kekewangLuo.cc/mvxUET5dqyd0 图片:
- PHPICP备案查询接口源码
<?php header("Content-Type:text/json;charset=UTF-8"); $domain = $_GET['domain']; $api = ...
- 2023 首发 新版 抖音权重查询接口源码v2.1 附接口
最近爆火的抖音权重限流查询,输入抖音主页链接即可查询作品情况,不清楚的兄弟可以去抖音搜索"权重"看直播间,一场直播都是几万票,折算下来几千,赶快抓住风口吃肉.目前后台系统已经写好, ...
- PHP快递单号查询接口源码指导(快递鸟 API)
最近进行网站后台开发,需要实现物流的即时查询, 为了方便以后的业务需求,经过比较,最后选择使用第三方快递鸟查询接口服务商. 同时,在此进行整理,希望能帮到有需求的道友们,谢谢! 最近进行网站后台开发, ...
- java计算机毕业设计基于安卓Android的城市公交查询app(源码+系统+mysql数据库+Lw文档)
项目介绍 本课题城市公交线路查询,采用安卓平台,所完成的可扩展性.可靠性以及可重用性的城市公交线路查询系统,以满足现实生活的需要.数据库选用MySQL. 前端为移动端,采用安卓框架uniapp,开发软 ...
- PHP百度收录量查询接口源码,PHP百度收录量查询接口源码
怕小白不懂,使用实例:域名/1.php?domain=emoliang.com $domain = (isset($_GET['domain']))?$_GET['domain']:$_POST['d ...
- 基于Android开发的星座查询APP源码
本项目是一个基于安卓的星座运势查询项目源码,功能主要是星座查询,星座性格特点,联网实现的星座运势查询,和星座相关美图展示. 文件:url80.ctfile.com/f/25127180-7404788 ...
- 最新智云全能API接口查询PHP源码V1.1
介绍: 1.[一言/随机语录]2.[必应每日一图]3.[域名是否已注册查询接口]4.[m3u8视频在线解析]5.[随机生成二次元图片]6.[快递查询-支持国内百家快递]7.[二维码图片生成]8.[抖音 ...
- php 本地mysql 代码_基于本地数据库的 IP 地址查询 PHP 源码
* 纯真 IP 数据库查询 * * 参考资料: * - 纯真 IP 数据库 http://www.cz88.net/ip/ * - PHP 读取纯真IP地址数据库 http://ju.outofmem ...
最新文章
- Pri3D:一种利用RGB-D数据固有属性完成3D场景感知的表示学习方法
- dock run mysql v3_docker run mysql成功,但是3306端口不通?
- angular2 组件之间通讯-使用服务通讯模式 2016.10.27 基于正式版ng2
- 【ESSD技术解读】 云原生时代,阿里云块存储 ESSD 快照服务如何被企业级数据保护所集成?
- Spring如何处理线程并发
- 简要分析光端机选购必备条件
- ASP.NET WebAPi之断点续传下载(上)
- java 爬虫_探索Java 多线程爬虫及分布式爬虫架构
- 删除计算机文件的几种方法,电脑删除不了文件怎么办?教你几种好的处理方法,一学就会...
- 有了这些接口测试用例+工具,测试效率想不提升都难
- 牛客网暑期ACM多校训练营(第二场): H. travel(树形线头DP)
- 【遗传算法】求解TSP问题
- 大数据讲课笔记5.5 MR案例——倒排索引
- 元宇宙产业化还很遥远
- html标签属性可以省略,html部分---通用标签与属性;
- 人员招聘与培训实务【2】
- PPT最强抠图技巧(收藏必备)
- T检验,方差分析,非参数检验,卡方检验,方差分析总结
- 岭南师范学院专插本计算机,2019年岭南师范学院专插本招生专业
- ntlm java_Java Web服务NTLM身份验证
热门文章
- 快速开发一个混合APP(Hybrid APP)
- Express全系列教程之(十):渲染jade模板引擎
- python数据科学手册pdf中文版百度云,Python数据科学手册 英文pdf源码
- DB2 JDBC Driver 必需的字符转换器不可用
- dstwo linux 模拟器,dstwo md模拟器使用图文教程
- 5.1 Lilypond五线谱
- 2021年山东大学考研数字电路906真题
- matlab能不能查焓湿图,焓湿图上,湿球温度要怎么查呢?
- 北大青鸟学java是用什么课程_来自北大青鸟参加过JAVA课程的学长建议
- 《现代操作系统(中文第三版)》课后习题——第二章 进程与线程