IIS日志 F5XForwardedFor.dll IIS日志中获取访客真实IP的解决方案插件

当HTTP请求中包含 X-Forwarded-For 的header, 这个值会被策略替换为一个单独的客户端IP地址。如果没有 X-Forwarded header, 将添加这个header并且加入客户端IP地址值。

F5 iRules:

when HTTP_REQUEST {
 if {[HTTP::header exists X-Forwarded-For]}{
 HTTP::header replace X-Forwarded-For "[HTTP::header X-Forwarded-For], [IP::
client_addr]"
 } else {
 HTTP::header insert X-Forwarded-For [IP::client_addr]
 }
}

NetScaler :
add rewrite action xforward replace HTTP.REQ.HEADER("X-Forwarded-For") CLIENT.IP.SRC
add rewrite policy xforward_check_pol "HTTP.REQ.HEADER(\"X-FORWARDEDFOR\").EXISTS"

add rewrite action xforward_add insert_http_header X-FORWARDED-FOR CLIENT.IP.SRC
add rewrite policy xforward_add_pol "HTTP.REQ.HEADER(\"X-FORWARDEDFOR\").EXISTS.NOT"
xforward_add

全局或者在 vServer 级别绑定

F5负载均衡获取客户端真实IP

1.在F5上配置X-Forwarded-For

2.获取ip时应用如下代码:

String ip = getRequest().getHeader("X-Forwarded-For");
if (ip == null || ip.length() == 0 ) {
ip = getRequest().getRemoteAddr();
}

应用方法

知识兔

下载并解压 F5XForwardedFor文件。

根据自己的服务器操作系统版本将x86\Release或者 x64\Release目录下的 F5XFFHttpModule.dll 和 F5XFFHttpModule.ini拷贝到某个目录,比如 C:\F5XForwardedFor\。确保IIS进程对该目录有读取权限。

202202221339075826570000

打开IIS管理器,双击模块功能。

202202221339083023440001

单击配置本机模块,然后在弹出的对话框中,单击注册。

202202221339089680890002

添加下载的.dll文件(最好x64和x86都添加好)

202202221339096261840003

202202221339102779470004

202202221339110052660005

为添加的两个文件授权允许运行ISAPI和CGI扩展。

202202221339117203110006

202202221339123873000007

202202221339131208480008

202202221339138551380009

返回主页后,重启IIS:

202202221339145241920010

去%SystemDrive%\inetpub\logs\LogFiles查询IIS日志,可以看到日志里边已经有相关原始IP信息了

202202221339152188970011

下载体验

下载仅供下载体验和测试学习,不得商用和正当使用。

请输入密码查看内容!

如何获取密码?

 

点击下载

软件