【问题标题】:How to get the IP address of Client Using Javascript如何使用 Javascript 获取客户端的 IP 地址
【发布时间】:2011-01-12 15:37:05
【问题描述】:

嗨,请告诉我如何获取客户端 IP 地址。我使用了以下。

Ip = <--#echo var="REMOTE_ADDR"-->;

ip = '<%= Request.UserHostAddress>';

但这些都不起作用。

【问题讨论】:

  • 你的服务器端语言是什么?
  • stackoverflow.com/questions/391979/… 的副本(除非您有服务器端语言,在这种情况下它是可能的,但它不会是only Javascript)。跨度>
  • 您能否提供更多有关您的环境的信息,以上两者看起来都是经典的 ASP sn-ps。
  • @SpikeX -- 这里的问题看起来像是提问者在经典 ASP 环境中使用 JScript,这使得这与获取用户 IP 的问题完全不同使用客户端 JavaScript。

标签: javascript asp-classic ssi


【解决方案1】:

在 ASP Classic 中使用以下代码获取 IP 地址

<%
Dim UserIPAddress
UserIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If UserIPAddress = "" Then
UserIPAddress = Request.ServerVariables("REMOTE_ADDR")
End If
%>

【讨论】:

    【解决方案2】:

    大多数网络服务器(我假设您使用的是 IIS)在 REMOTE_ADDR Environment Variable 中提供此信息。

    您的示例正在尝试使用经典 ASP 和服务器端包含获取服务器的变量,这两个在现代 IIS Web 服务器上默认关闭。您可能需要启用经典 ASP 或 SSI,或使用ServerVariables property using ASP.NET

    【讨论】:

    • 我启用 ssi 并且我使用 ip = '';但它没有正确显示
    • 这是经典的 ASP 方式 -- 使用 SSI 尝试您的第一个示例,&lt;--#echo var="REMOTE_ADDR"--&gt;
    • 第一个链接已失效。
    【解决方案3】:

    试试这个:

    <script type="text/javascript">
        var ip = "<%=Request.ServerVariables("REMOTE_ADDR")%>";
        alert(ip);
    </script>
    

    假设这是 .asp 页面,您应该会看到带有您的 IP 地址的警报。

    【讨论】:

      【解决方案4】:

      你不能单独使用 JavaScript 来做到这一点,在我看来你试图在客户端上使用服务器端代码,这是行不通的。

      这样做最简单、最快(也是最丑陋)的方法是将 s*服务器端* 上的 IP 输出到正在发送给用户的页面上的脚本标记中。

      不知道你在服务器端使用的是哪种语言,所以我会给你一些伪代码。

      echo '<script type="text/javascript">var USER_IP = ' + getRemoteAddess() + ';</script>'
      

      这将在页面中引入一个名为USER_IP 的全局变量,请确保使用该变量的代码位于上述脚本标记之后

      【讨论】:

      • 我想使用 javascript 提醒 IP 地址,所以我使用了你上面的代码,但这对我不起作用
      【解决方案5】:

      您无法使用纯 Javascript 获取 IP。您提供的两个解决方案需要服务器端脚本。

      【讨论】:

      • 看起来像 OP 使用 JScript ASP 经典服务器端
      【解决方案6】:

      试试

      ip = '<%= Request.UserHostAddress %>';
      

      【讨论】:

        【解决方案7】:

        如果有人正在寻找 PHP 解决方案,您可以这样做:

        <?php echo $_SERVER['REMOTE_ADDR']; ?>
        

        例如,如果你在一个 JS 数组中传递它,它看起来像这样:

        tr._setSomeVar(5, "Remote Address", "<?php echo $_SERVER['REMOTE_ADDR']; ?>", 9);
        

        【讨论】:

          猜你喜欢
          • 2012-03-14
          • 2012-02-16
          • 2015-12-20
          • 2016-03-29
          • 2010-12-11
          • 2016-01-12
          • 2021-07-05
          • 2017-12-20
          • 2019-01-14
          相关资源
          最近更新 更多