有没有办法将X-Forwarded-For头中的IPv6风格的IPv4地址转换为IPv4风格?

我运行一个系统,在一个鱿鱼加速器前面有一个磅反向代理,反过来在Apache2前为几个基于PHP的web应用程序供电。

Pound守护进程被configuration为将X-Forwarded-For头部发送给Apache,所以上述应用程序可以确定消息的真实来源(squid被configuration为透明地传递X-Forwarded-For头部而不需要修改)。 但是,Pound在XFF头文件中注明了IPv4地址,例如::ffff:1.2.3.4而不是简单地写成1.2.3.4 ,这会抛出应用程序。

除了修改每个应用程序以正确处理::ffff:1.2.3.4情况外,是否有一种方法可以阻止Pound使用IPv6表示法或在Apache中将IPv6表示法抢先转换回IPv4表示法?

在php应用程序看到它之前,你应该可以使用mod_headers重写X-Forwarded-For头文件:

 RequestHeader edit X-Forwarded-For "^::ffff:" ""