学做网站培训课程介绍

当前位置:

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"
}

发表评论

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

相关教程

  • 我们在开发网站时,有时需要记录所有用户登录网站的信息,如登录时间、登录IP地址等。只要用户一登录,就自动将用户的登录信息写入数据库里。下面就w
  • 通常我们制作网站的二级菜单都是使用普通的下拉展开的方式,但也有网站的下拉二级菜单是带有图片的布局。如下图:怎么制作这样的带图的二级下拉菜单
  • 默认情况下,服务器的PHP上传限制为50M,对于多数上传是足够了。如果想在网站后台上传更大的文件,可以在宝塔后台修改上传限制50M的大小。方法如下:
  • 做网站时,有时需要在网站前台制作一个表单,表单里有点击上传图片的功能。怎么自己使用PHP制作这种网站前台表单上传图片到服务器功能呢?下面分享
  • 这个教程将讲解Wordpress + Elementor可视化开发外贸独立网站的整个过程,将以视频案例的方式一步步讲解如何可视化开发外贸独立网站。以下是可视化开
  • 制作外贸网站时,如果想在网站的网页中嵌入地图,我们需要嵌入英文版地图。如下图:怎么做到嵌入这样的英文版地图呢,下面学做网站论坛就来介绍一下
  • 网站导航菜单中常见的有二级下拉菜单,这个制作起来相对比较简单。如果网站项目比较多时,可以制作三级下拉菜单,可以更好的展示项目。如下图:怎么
  • 现在很多网站都安装了SSL证书来实现加密访问,SSL证书一般是申请后可以使用一年,一年到期后再次申请重新布署。但有些站长会遇到这样的情况,网站旧
  • WordPress程序里的某个PHP文件,如果想连接数据库,一般需要填写数据库名、数据库用户、密码等信息,如下:<?php$conn=mysqli_connect(&qu
  • 我们做网站一般都是做自适应结构,不同用户使用不同的浏览设备可以浏览不同的版面的网站。但有时为了特殊的要求,我们不希望自己的网站手机端自适应,