寫了下asp取真實
IP的代碼,搭環境測試無代理、一級或多級代理的情況,可以正常獲取
function checkip(checkstring)'用正則判斷IP是否合法
dim re1
set re1=new RegExp
re1.pattern="^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$"
re1.global=false
re1.Ignorec
ase=false
checkip=re1.test(checkstring)
set re1=nothing
end function
function
get_cli_ip()'取真實IP函數,先
HTTP_CLIENT_IP 再 HTTP_X_FORWARDED_FOR 再 REMOTE_ADDR
dim clIEnt_ip
if checkip(Request.
ServerVariables("HTTP_CLIENT_IP"))=true then
get_cli_ip = checkip(Request.ServerVariables("HTTP_CLIENT_IP"))
else
MyArray = split(Request.ServerVariables("HTTP_X_FORWARDED_FOR"),",")
if ubound(MyArray)>=0 then
clIEnt_ip = trim(MyArray(0))
if checkip(clIEnt_ip)=true then
get_cli_ip = clIEnt_ip
exit function
end if
end if
get_cli_ip = Request.ServerVariables("REMOTE_ADDR")
end if
end function