asp如何获得服务器公网IP
来源:百度知道 编辑:UC知道 时间:2024/06/01 20:16:05
我已在路由上做好了端口映射,并用动态域名解析客户端做好了解析,从外网的机器上通过域名都能访问我的ASP站,但我现在用Request.ServerVariables("LOCAL_ADDR") 得到的服务器IP 是内网的192.168.1.8,而不是公网的IP,我想同时得到内网IP和公网那个IP,请问怎么实现?
再次强调:要获得的是在局域网中的机器(ASP服务器)的公网IP,而不是来访用户的IP。
这种情况是无法直接获取公网IP的
可以考虑通过xmlhttp组件去访问外网指定页面获取公网IP
Function getIp()
Dim strIPAddr
If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then
strIPAddr = Request.ServerVariables("REMOTE_ADDR")
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)
Else
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
g