吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3342|回复: 17
收起左侧

[其他转载] PHP小接口-利用站长网获取IP的地理位置(curl方式)

  [复制链接]
yuren0 发表于 2022-1-14 13:52
本帖最后由 yuren0 于 2022-1-14 13:57 编辑

代码很短,使用方便
已备注大部分代码含义
使用方法:将页面放入服务器,直接访问
直接访问将返回自身IP和地理位置
也可以如:https://52pojie.cn/?ip=8.8.8.8
Snipaste_2022-01-14_13-37-23.png
[PHP] 纯文本查看 复制代码
<?php
        echo '<html>
        <head>
        <title>IP地理位置接口</title></head></html>';
        //以上内容输出页面标题
if (!empty($_GET["ip"])){  //如果接口访问时带了IP参数,则查询参数中的地址
        $local=$_GET["ip"];
} else {
        $local=$_SERVER["REMOTE_ADDR"];  //否则查询自身本地IP地址
}
//下方代码为curl核心代码
        $url="https://ip.chinaz.com/".$local;  //访问地址
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER, 1);  //使用自身协议头
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        $response = curl_exec($ch);  //返回IP138的页面源码
        $response = preg_replace('/\s+/', '', $response);  //删除源码中所有的空格
        curl_close($ch);
//curl核心代码结束,下面代码为取出中间文本
        function get_em($input, $start, $end) {
        $substr = substr($input, strlen($start)+strpos($input, $start),
        (strlen($input) - strpos($input, $end))*(-1));
        return $substr;
}
        $string = $response;
        $start = '0lh45"><em>';
        $end = '</em><aclass';
        echo 'IP:'.$local.'<br>位置:'.get_em($string, $start, $end);  //输出查询IP和取出地理位置

?>

免费评分

参与人数 4吾爱币 +3 热心值 +3 收起 理由
sanyuebeichen + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
软件我来了 + 1 + 1 我很赞同!
我若化成风 + 1 + 1 我很赞同!
yhk2008 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

p_uppet 发表于 2022-1-14 16:40
yhk2008 发表于 2022-1-14 15:38
哇,不错啊,但是我觉得加一个json格式更好

[PHP] 纯文本查看 复制代码
 echo 'IP:'.$local.'<br>位置:'.get_em($string, $start, $end);  //输出查询IP和取出地理位置

修改为:
[PHP] 纯文本查看 复制代码
        $ip = ['code' => 200, 'ip' => $local, 'weizhi' => get_em($string, $start, $end)];
        //json格式化、中文不转为unicode、不再转义
        die(json_encode($ip,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES));

 

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
yuren0 + 1 + 1 优秀~

查看全部评分

 楼主| yuren0 发表于 2022-1-17 13:18
p_uppet 发表于 2022-1-17 11:59
@yuren0 才发现你是某易论坛的大神,你的源码不错,挺好用

大神是真不敢当
yhk2008 发表于 2022-1-14 15:38
我若化成风 发表于 2022-1-14 16:34
可以,挺不错
lanzi 发表于 2022-1-17 09:50
想根据IP获取城市应该怎么做呢?
p_uppet 发表于 2022-1-17 11:59
@yuren0 才发现你是某易论坛的大神,你的源码不错,挺好用
 楼主| yuren0 发表于 2022-1-17 13:16
lanzi 发表于 2022-1-17 09:50
想根据IP获取城市应该怎么做呢?

是查询任意IP,只需要城市信息么
软件我来了 发表于 2022-2-7 00:29
不错呀,用上了。
izzue0710 发表于 2022-3-22 11:10
这是干什么用的?获取IP吗?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 01:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表