F5中开启AutoMap,并传递X-Forwarded-For值

开启F5源地址转换"Auto Map"

方式一: 在http profile中开启X-Forwarded-For

方式二:在iRule中开启X-Forwarded-For

when HTTP_REQUEST {
HTTP::header insert "X-Forwarded-For" [IP::client_addr]
}

IIS 7日志中获取访客真实IP的解决方案

方案一:使用ISAPI筛选器获取访客真实IP。

1、下载插件F5XForwardedFor.dll:http://aliyuntool.oss.aliyuncs.com/F5XForwardedFor2008.zip

2、根据自己的版本将x86\Release 或者x64\Release目录下的F5XForwardedFor.dll拷贝到某个目录,假设为C:\F5XForwardedFor\,确保对IIS进程对该目录有读取权限。

3、确认您的服务器是否安装以下两个模块:(“ISAPI筛选器” 及 “ISAPI和CGI限制” ):如果未安装,请按以下步骤进行安装:

如果未安装,请按以下步骤进行安装:

1、右键点击 ”计算机”,选择 ”管理:

2、选择”角色”选项,点击添加角色服务:

3、选择“ISAPI 扩展 和ISAPI筛选器”,点击下一步,进行安装。

4、添加“ISAPI筛选器”,双击“ISAPI筛选器”,点击添加:

5、填写筛选器的名称(没无特殊要求),选报DLL文件路径,点击确定。

6、双击“ISAPI 和CGI限制”,点击添加,添加内容如下:

7、修改添加的DLL,从“不允许”修改为“允许”。

8、重启IIS服务器,等待配置生效。

方案二:使用IIS模块功能获取访客真实IP。

1、下载F5XForwardedFor模块:http://aliyunecs.oss.aliyuncs.com/x_forwarded_for.rar

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

3、选择"IIS服务器"选项,按图所示选择"模块"功能。

4、双击“模块”功能,点击“配置本机模块”。

5、在弹出框中点击“注册”按钮。

6、添加下载的DLL文件,如下图:

7、添加完成后,勾选并点击“确定”。

8、把这两个DLL在 “API 和CGI限制”进行添加,并改为允许。

9、重启IIS服务器,等待配置生效。

Apache日志中获取访客真实IP的解决方案

修改配置文件httpd.conf

<IfModule log_config_module>
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" f5_forwarder
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" is-forwarded
CustomLog logs/access_log combined env=!is-forwarded
CustomLog logs/access_log f5_forwarder env=is-forwarded
</IfModule>

或者添加%{X-Forwarded-For}i(推荐)

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{X-Forwarded-For}i" combined

Nginx日志中获取访客真实IP的解决方案

修改配置文件nginx.conf

log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"' ;

Tomcat日志中获取访客真实IP的解决方案

修改配置文件server.xml

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot; %{X-Forwarded-For}i" />

在PHP中获取X-Forwarded-For的值

<?php
$headers = apache_request_headers();
$real_client_ip = $headers["X-Forwarded-For"];
echo "Your IP: ",$real_client_ip;
?>

F5中源地址转换(AutoMap)模式下后端服务器获取客户端真正的IP地址的更多相关文章

  1. nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容

    1.nodejs获取客户端真实的IP地址: 在一般的管理网站中,尝尝会需要将用户的一些操作记录下来,并记住是哪个用户进行操作的,这时需要用户的ip地址,但是往往当这些应用部署在服务器上后,都使用了ng ...

  2. Nginx 负载均衡 后端服务器获取前端用户真实IP

    Nginx 后端 日志文件 获取的都是 前端 负载均衡器的IP 想要获取用户的真实IP 必须 使用Nginx 的模块  http_realip_module  才行!! 1. 编译 Nginx 的时候 ...

  3. 在容器服务中获取客户端真实源 IP

    适用范围:腾讯云容器服务(Tencent Kubernetes Engine ,TKE), 以下简称 TKE. 为什么需要获取客户端真实源 IP? 当需要能感知到服务请求来源去满足一些业务需求时,就需 ...

  4. 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  5. ubuntu下仅仅获取网卡一的ip地址 && shell中字符串拼接

    问题描述: ubuntu下仅仅获取网卡一的ip地址 问题背景: eth0,eth1,eth2……代表网卡一,网卡二,网卡三…… lo代表127.0.0.1,即localhost | 问题描述: 已知字 ...

  6. nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP

    nginx做反向负载均衡,后端服务器获取真实客户端ip   首先,在前端nginx上需要做如下配置: location / proxy_set_hearder host                 ...

  7. 在Thinkphp3.2.3框架下实现自动获取客户端IP地址的get_client_ip()函数

    在Thinkphp框架下使用get_client_ip()函数获取客户端IP地址十分方便: 一行代码便可以实现:$ip = get_client_ip(); 但当我们测试时会遇到后台获取的IP地址显示 ...

  8. nginx做反向负载均衡,后端服务器获取真实客户端ip(转)

    首先,在前端nginx上需要做如下配置: location / proxy_set_hearder host                $host; proxy_set_header X-forw ...

  9. NGINX反向代理,后端服务器获取真实IP

    一般使用中间件做一个反向代理后,后端的web服务器是无法获取到真实的IP地址. 但是生产上,这又是不允许的,那么怎么解决? 1.在NGINX反向代理服务器上进行修改 2.修改后端web服务器配置文件 ...

随机推荐

  1. jQuery轻量级京东图片轮播代码等

    http://sc.chinaz.com/jiaoben/jiaodiantu.html jQuery轻量级京东图片轮播代码   查看全图点击预览 顶(17)踩(4)报错评论(0)下载地址 更新时间: ...

  2. 手把手教你写对拍程序(PASCAL)

    谁适合看这篇文章? ACMERS,OIERS或其它参加算法竞赛或需要算法的人 对操作系统并不太熟悉的人 不会写对拍的人 在网上找不到一个特别详细的对拍样例的人 不嫌弃我写的太低幼的人 前言 在NOIP ...

  3. C++中Const说明

    最近在看程序员面试宝典,看到const这块感觉有很大疑惑,查了很多资料,可以总结如下: 1.在C语言中 在C语言中,const修饰的变量不具有常量的特性,只是一个不可修改的变量,实质上仍然是变量,在编 ...

  4. Hadoop文件系统常用命令

    1.查看指定目录下内容 hadoop dfs –ls [文件目录] eg: hadoop dfs –ls /user/wangkai.pt 2.打开某个已存在文件 hadoop dfs –cat [f ...

  5. grails2.3.11第二课

    第二课主要介绍grails相关插件的使用,这是敏捷开发所必需的途径. 可以把grails的插件看作是grails正常项目的迷你型,因为看插件的源码,它的目录结构和正常项目相差无几. 官方开源插件地址 ...

  6. 44 个 JavaScript 变态题解析

    当初笔者做这套题的时候不仅怀疑智商, 连人生都开始怀疑了…. 不过, 对于基础知识的理解是深入编程的前提. 让我们一起来看看这些变态题到底变态不变态吧! 第1题 ["1", &qu ...

  7. homework-02 一坑到底的最大和联通图

    你在这个作业中学到了什么?  有什么好的设计值得分享?  感想如何 (太容易 / 太难 / 太无趣)? 我觉得这套题目有点偏难,我不像大牛那样,有很多算法可以选择,我是0算法基础的,所以遇到这题我一个 ...

  8. sizeof _countof _tcslen的比较

    sizeof ----用于计算数组或其他对象的大小,以字节为单位,含\0结束符. _countof----一个宏,用于计算数组的实际元素个数 ,含\0结束符: _tcslen----c++求数组长度的 ...

  9. Activity详解

    Activity是android应用的重要组成单元之一(另外3个是Service,BroadcastReceiver和ContentProvider).实际应用包含了多个Activity,不同的Act ...

  10. asp.net webservice 跨域解决方法

    首先需要把[System.Web.Script.Services.ScriptService]前边的注释去掉,放开权限,其次需要在web.config 里<system.web节点下>添加 ...