【问题标题】:How to get IP address of your application server如何获取应用服务器的 IP 地址
【发布时间】:2011-02-07 03:18:20
【问题描述】:

我需要能够找到当前正在执行页面的服务器的 IP 地址。我有一些调用第三方站点的代码,并且必须传递一个特定的密钥,该密钥会根据它所在的服务器而变化。 ColdFusion 中是否有 CGI 变量或某种方式来确定主机服务器的 IP 地址是什么?

【问题讨论】:

    标签: coldfusion cgi ip-address


    【解决方案1】:

    就像其他评论者所概述的那样,如果您需要第三方网站看到的外部 IP,那么您可能应该使用他们推荐的外部方法。

    但是,如果第三方以某种形式为您提供访问权限,该形式基于服务器看到的实际 IP 而不是他们看到的 IP,您可以使用

     <cfset cName = CreateObject("java", "java.net.InetAddress").getLocalHost().getHostAddress()>
    
     <cfdump var="#cName#">
    

    【讨论】:

      【解决方案2】:

      程序无法查询其正在运行的主机并查看其 IP 的原因有两个:

      1. 它可能有多个 ip,如果不查看各种内核数据结构,您不太可能知道哪一个将用于给定的传出连接。

      2. 它可能会通过 NAT 防火墙或某种代理连接到外部世界,这样外部世界就会看到与您机器上配置的任何 IP 不同的 IP。

      实际上,可能不止这两个,但那些是我想到的。

      因此,最简单的方法是连接到公司网络之外的另一个盒子,然后查看它认为您拥有的 IP。我使用在我的 colo box 上运行的两行 CGI 脚本来检测我的家庭服务器当前拥有的 IP(这样我就可以检测有线电视公司何时更改它)。

      【讨论】:

        【解决方案3】:

        您可以使用 CGI.LOCAL_ADDR 来确定服务器的 IP 地址(CFML 等效于 PHP 的 $_SERVER["SERVER_ADDR"])。它可以使用 ColdFusion 或 Railo 在 IIS 和 Apache 上运行,前提是您不在代理服务器后面,没有解析服务器 IP 并且只有一个 IP 分配给您的服务器(如果有多个 IP,不确定会显示哪个 IP)。

        【讨论】:

        【解决方案4】:

        我会使用hostip.info API
        您的 XML 格式 IP:http://api.hostip.info/get_xml.php
        您在 HTML 中的 IP:http://api.hostip.info/get_html.php

        【讨论】:

          【解决方案5】:

          最安全的方法是使用WhatIsMyIP 之类的服务。如果服务器位于 NAT 之后,则操作系统不知道外部 IP 地址。

          SO 中有很多关于此的问题,例如,请参阅here

          【讨论】:

            【解决方案6】:
            <cfhttp url="http://www.whatismyip.com/" result="myresult" resolveurl="yes">
            <cfoutput>#myresult.filecontent#</cfoutput>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-08-03
              • 2013-05-18
              相关资源
              最近更新 更多