日志工具

关注公众号 jb51net

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

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进程对该目录有读取权限。

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

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

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

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

返回主页后,重启IIS:

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

大家还下载了