在PHP中限制IP访问通常涉及到检查当前请求的来源IP地址,并根据预设的允许或拒绝列表来决定是否允许该IP地址访问特定的资源或执行特定的操作。以下是一个简单的示例代码,展示了如何在PHP中实现IP访问限制:
<?php
// 允许访问的IP地址列表
$allowed_ips = ['192.168.1.1', '10.0.0.1'];
// 获取当前请求的IP地址
$current_ip = $_SERVER['REMOTE_ADDR'];
// 检查当前IP是否在允许列表中
if (!in_array($current_ip, $allowed_ips)) {
// 如果不在允许列表中,拒绝访问
header('HTTP/1.0 403 Forbidden');
echo 'Access denied.';
exit();
}
// 如果IP地址被允许,继续执行后续代码
echo 'Welcome! You have access to this resource.';
?>
REMOTE_ADDR
可能显示为代理服务器的IP地址。HTTP_X_FORWARDED_FOR
头信息,获取真实的客户端IP地址。为了处理代理服务器的情况,可以改进示例代码如下:
<?php
$allowed_ips = ['192.168.1.1', '10.0.0.1'];
// 获取真实的客户端IP地址
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$current_ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$current_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$current_ip = $_SERVER['REMOTE_ADDR'];
}
if (!in_array($current_ip, $allowed_ips)) {
header('HTTP/1.0 403 Forbidden');
echo 'Access denied.';
exit();
}
echo 'Welcome! You have access to this resource.';
?>
通过这种方式,可以更准确地识别和处理通过代理服务器访问的情况。
领取专属 10元无门槛券
手把手带您无忧上云