You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在指定网页上拦截localhost本地IP访问?

本地回环IP拦截方案(PHP)

原有代码问题说明

  • 直接使用==判断IP段是无效的,该运算符只能做精确字符串匹配,无法识别127.0.0.1-127.0.0.9这种范围写法
  • 没有覆盖IPv6的本地回环地址::1,本地通过IPv6访问localhost时不会被识别到
  • 部分本地环境下域名解析的localhost对应的IP可能不在你写的127.0.0.1~9范围内,也会导致拦截失效

可用实现代码

// 定义固定本地回环IP列表,可按需扩展
$local_ips = [
    '127.0.0.1',
    '::1'
];
// 匹配127.0.0.1-127.0.0.9段IP的场景,用ip2long转换为数值后做范围判断
$ip_long = ip2long($_SERVER['REMOTE_ADDR']);
if (in_array($_SERVER['REMOTE_ADDR'], $local_ips) || ($ip_long >= ip2long('127.0.0.1') && $ip_long <= ip2long('127.0.0.9'))) {
    die('访问被拦截');
}

特殊场景适配

如果你的服务部署在反向代理后面,$_SERVER['REMOTE_ADDR']会拿到代理服务器的IP而非真实客户端IP,需要先调整取值逻辑,从代理传递的X-Forwarded-For等请求头里取真实IP,再做拦截判断。

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:18:02