string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
首先使用上面这句获取IP值,这是优先取得代理IP。
第一个IF是判断如果从这个代理IP方法没有获取到IP,则使用下一个获取办法:
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]
这个是直接取客户端IP
第二个IF表示如果从代理IP和从客户端IP获取IP值都没有获取到的话,则使用下一个办法获取:
result = HttpContext.Current.Request.UserHostAddress
本函数也就是使用三种方法,用不同的优先级获取客户端的IP地址,因为现在上网方式很多,单纯的一种方法很难一次性的准确获取到IP,故而会有这些IP出现,确保能尽可能的获取到IP
汗,我也写多一点,给你一段功能更全面的代码,自己去试一试就知道了,决对自己写的代码.Function RSV(Types)'ServerVariables常用select case Types
case "Method"'提交方式
RSV=request.ServerVariables("Request_Method")
case "HOST"'服务器地址,取得域名
RSV=request.ServerVariables("HTTP_HOST")
case "ComeUrl"'URL来源
RSV=request.ServerVariables("HTTP_REFERER")
case "IP"'发出请求的远程主机的IP地址
If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" Then
RSV = Request.ServerVariables("REMOTE_ADDR")
Else
RSV = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
end select
end Function 调用只需要用<%=RSV("IP")%>就行了,这里面还有其他功能,你看注解吧!
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)