• F5中源地址转换(AutoMap)模式下后端服务器获取客户端真正的IP地址


    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、根据自己的版本将x86Release 或者x64Release目录下的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、根据自己的服务器版本将x86Release 或者x64Release目录下的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;
    ?>

     

  • 相关阅读:
    javascript ajax 脚本跨域调用全解析
    [转载]linux sed命令详解
    perl随记(1)
    TCL随记(2)
    TCL随记(1)
    C Shell 中的特殊变量
    异步FIFO为什么用格雷码
    VMM学习-vmm_log
    UVM基础之---Command-line Processor
    Verification Mind Games---how to think like a verifier像验证工程师一样思考
  • 原文地址:https://www.cnblogs.com/edward2013/p/5501258.html
Copyright © 2020-2023  润新知