首页 > 网站 > 建站经验 > 正文

asp获取用户真 实IP地址的方法

2019-11-02 14:44:58
字体:
来源:转载
供稿:网友

 一般的程序都具备获取用户IP地址的命令,但是我们访问网站有两种一种是我们这种普通用户,一种是使用代理IP上网的用户,下面我来介绍介绍。

 

asp中获取用户IP地址我们最简单的获取方法就是使用

 代码如下  

Request.ServerVariables("REMOTE_ADDR")

但是如果用户使用了代理服务器IP地址就不对了,但我们可通过

 代码如下  

Request.ServerVariables("REMOTE_ADDR")

结果上面的两个获取IP的方法我们可如下操作

 代码如下  

userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")

上面的只是一个简单的判断方法,在实际应用中我们可能碰到的情况更多,下面看一个不错的实例

 代码如下  

<%Private 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 
getIP = Trim(Mid(strIPAddr, 1, 30)) 
End Function 
ip=getIP() 
response.write(ip) 
%>

这样几乎可以获取到用户真实IP地址了,但是也不能保存所有代理的都能获取到了,只是大家都使用上面的方法。

如果有使用net/' target='_blank'>asp.net的朋友可参考下面方法来获取

 代码如下  

//方法一
HttpContext.Current.Request.UserHostAddress;

//方法二
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

//方法三
string strHostName = System.Net.Dns.GetHostName();

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表