寫了下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.Ignorecase=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