• 不通过浏览器获取公网 IP


    一.不通过浏览器获取公网 IP

    有的时候我们的计算机处于受限状态,不能使用浏览器或者 HTTP 协议。

    也就不能使用类似:

    curl ifconfig.io
    

    之类的命令来获取公网 IP。

    但其实可以不通过浏览器,而是通过 DNS 来获取公网 IP,使用如下命令:

    dig @ns1.google.com TXT o-o.myaddr.l.google.com +short
    # 或者:nslookup -type=TXT o-o.myaddr.l.google.com ns1.google.com
    

    其它的 DNS 提供商也可以:

    # OpenDNS
    dig myip.opendns.com @resolver1.opendns.com +short
    # 或者:nslookup myip.opendns.com resolver1.opendns.com
    
    # Akamai
    dig whoami.akamai.net. @ns1-1.akamaitech.net. +short
    # 或者:nslookup whoami.akamai.net. ns1-1.akamaitech.net.
    

    这些命令会返回公网 IP 的原理是:

    Google 等公司会编写程序,监听在它们类似 o-o.myaddr.l.google.com 的地址上。只要有请求,就会将请求的源 IP 地址作为数据直接返回。

    二.nginx设置反向代理,如何获取真实客户端ip

    upstream这个模块提供一个简单方法来实现在轮询和客户端IP之间的后端服务器负荷平衡。
    upstream abc.com {
            server 127.0.0.1:8080;
            server 127.0.0.1:80;
            server 127.0.0.1:8000;
    }
    
    
    server {
            listen 80;
            server_name www.test.com;
            location / {
                    proxy_pass http://abc.com;
                    proxy_set_header    Host             $host;#保留代理之前的host
                    proxy_set_header    X-Real-IP        $remote_addr;#保留代理之前的真实客户端ip
                    proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
                    proxy_set_header    HTTP_X_FORWARDED_FOR $remote_addr;#在多级代理的情况下,记录每次代理之前的客户端真实ip
                    proxy_set_header    X-Forwarded-Proto $scheme;
                    proxy_redirect      default;#指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
            }
    }
    

    各参数的含义如下所示。

    • Host包含客户端真实的域名和端口号;

    • X-Real-IP表示客户端真实的IP;

    • X-Forwarded-For这个Header和X-Real-IP类似,但它在多层代理时会包含真实客户端及中间每个代理服务器的IP

    • X-Forwarded-Proto表示客户端真实的协议(http还是https);

    后记:

    记住:你比别人强的地方,不是你做过多少年的CRUD工作,而是你比别人掌握了更多深入的技能。不要总停留在CRUD的表面工作,理解并掌握底层原理并熟悉源码实现,并形成自己的抽象思维能力,做到灵活运用,才是你突破瓶颈,脱颖而出的重要方向!

    你在刷抖音,玩游戏的时候,别人都在这里学习,成长,提升,人与人最大的差距其实就是思维。你可能不信,优秀的人,总是在一起。。

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    SQL Server AUTO_FIX_Login_Users
    SQL Server Always On 切换主机Login和User无法匹配解决方案
    SQL Server 目标主体名称不正确,无法生成 SSPI 上下文
    SQL Server Rebuild Index
    jqery和js如何判断checkbox是否选中 (转)
    jxl
    jxl 管理excel
    Bootstrap库之Modals
    jquery attr()
    js 验证数字(验证字符串是否是数字)
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452549.html
Copyright © 2020-2023  润新知