如何使用Javascript获取客户端的IP地址

时间:2011-01-12 15:37:05

标签: javascript asp-classic ssi

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

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

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

但这些都不起作用。

7 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

试试这个:

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

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

答案 3 :(得分:1)

单独使用JavaScript无法做到这一点,在我看来,你试图在客户端上使用服务器端代码,但这不起作用。

最简单,最快速(也是最丑陋)的做法是将s * erver端 *上的IP输出到发送给用户的页面上的脚本标记中。 / p>

不知道您在服务器端使用哪种语言,因此我将为您提供一些伪代码。

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

如果有人正在寻找PHP解决方案,那么您只需这样做:

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

例如,如果您在JS数组中传递它,它将如下所示:

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