PHP获取IP地理位置API接口源码

随心笔谈5个月前发布 admin
176 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

本文介绍了一种基于PHP语言的地理位置接口获取方法。通过curl技术,该方法能够动态获取IP地址及对应位置信息。当访问页面带有IP参数时,系统会直接使用该IP地址进行查询;若未提供IP参数,则默认使用本地IP地址。在curl请求配置中,设置了自适应请求头以确保请求的安全性。通过正则表达式和自定义函数,该系统能够精准提取地理位置信息,并在页面中显示结果。该方法具有较高的灵活性和适应性,适用于需要实时地理位置服务的场景。

<?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和取出地理位置

?>

© 版权声明

相关文章