📜  如何使用 php 获取客户端的 IP 地址(1)

📅  最后修改于: 2023-12-03 15:08:23.435000             🧑  作者: Mango

如何使用 PHP 获取客户端的 IP 地址

在 WEB 开发中,获取客户端 IP 地址是一项基本的操作。本篇文章将介绍如何使用 PHP 获取客户端的 IP 地址。

方法一
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo $ip;
?>

这是最简单的获取客户端 IP 地址的方法。通过 $_SERVER 变量获取客户端的 IP 地址。REMOTE_ADDR 是一个服务器变量,它记录了客户端的 IP 地址。

需要注意的是,如果客户端使用了代理服务器,则 REMOTE_ADDR 变量会返回代理服务器的 IP 地址,而不是客户端的 IP 地址。

方法二
<?php
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}
echo $ip;
?>

这是比较全面的获取客户端 IP 地址的方法,它考虑了客户端使用代理服务器的情况。如果客户端使用了代理服务器,则需要获取 HTTP_CLIENT_IP 或者 HTTP_X_FORWARDED_FOR 变量才能获取客户端真实的 IP 地址。

需要注意的是,HTTP_X_FORWARDED_FOR 变量可被伪造,所以不能完全依赖该变量获取客户端 IP 地址。

方法三
<?php
if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
}
$ip = $_SERVER['REMOTE_ADDR'];
echo $ip;
?>

Cloudflare 是一家可以让网站实现加速和安全的互联网基础设施提供商,如果你的网站使用了 Cloudflare 的 CDN 服务,那么可以使用 HTTP_CF_CONNECTING_IP 变量获取客户端的真实 IP 地址。

总结

以上是几种获取客户端 IP 地址的方法,可以根据实际情况选择适合的方法。如果客户端使用了代理服务器,最好使用第二种方法获取客户端的 IP 地址。