PHP获取IP地址并自动查询IP归属地

我们可以使用PHP代码来获取网站访问用户的IP地址,但怎么将IP地址自动转成归属地呢?下面学做网站论坛介绍一下实现方法。

PHP获取IP地址:

<?php
$user_IP = ($_SERVER[“HTTP_VIA”]) ? $_SERVER[“HTTP_X_FORWARDED_FOR”] : $_SERVER[“REMOTE_ADDR”];
$user_IP = ($user_IP) ? $user_IP : $_SERVER[“REMOTE_ADDR”];
?>

PHP 通过IP地址自动查询归属地:

<?php
// 获取用户IP地址
$userIp = $historysql[$i]->uip;

// 构建请求URL
$url = “http://ip-api.com/json/{$userIp}?lang=zh-CN”;

// 初始化cURL会话
$ch = curl_init();

// 设置cURL选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 执行cURL会话
$response = curl_exec($ch);

// 关闭cURL会话
curl_close($ch);

// 将JSON响应解码为数组
$data = json_decode($response, true);

// 检查是否有错误或成功响应
if ($data && $data[‘status’] == ‘success’) {
// 输出归属地信息
echo “{$data[‘country’]}”;
echo ” {$data[‘city’]}”;
} else {
echo “無法獲取資訊。”;
}
?>

这个数据可以有以下几个参数值供显示:

{
“query”: “24.48.0.1”,
“status”: “success”,
“country”: “Canada”,
“countryCode”: “CA”,
“region”: “QC”,
“regionName”: “Quebec”,
“city”: “Montreal”,
“zip”: “H1K”,
“lat”: 45.6085,
“lon”: -73.5493,
“timezone”: “America/Toronto”,
“isp”: “Le Groupe Videotron Ltee”,
“org”: “Videotron Ltee”,
“as”: “AS5769 Videotron Ltee”
}

免责声明:网所有文字、图片、视频、音频等资料均来自互联网,不代表本站赞同其观点,内容仅提供用户参考,若因此产生任何纠纷,本站概不负责,如有侵权联系本站删除!邮箱:207985384@qq.com https://www.ainiseo.com/jianzhan/60358.html

(0)
上一篇 2025年11月20日 下午1:25
下一篇 2025年11月20日 下午1:27

相关文章推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

aisoboke
QQ 微信 Telegram
分享本页
返回顶部