How to retrieve the TRUE IP address in ASP

pradeep's Avatar author of How to retrieve the TRUE IP address in ASP
This is an article on How to retrieve the TRUE IP address in ASP in ASP.
Rated 5.00 By 1 users
Request.ServerVariables("REMOTE_ADDR") can be used to retrieve the IP address of the client machine.

While clients connect internet via a proxy server, the above method only return the IP address of the proxy server, other than the REAL IP address of the client machine. In order to request the TRUE IP address of the client via the proxy server, you may use
Request.ServerVariables("HTTP_X_FORWARDED_FOR").

One more thing, if the client does not connect the internet via a proxy server, then Request.ServerVariables ("HTTP_X_FORWARDED_FOR") will return a null value. Therefore, you can use this method in your program like this:

Code: ASP
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then
   userip = Request.ServerVariables("REMOTE_ADDR")
End if
i.e. If client connect the internet via a proxy server, we take the value returned by

HTTP_X_FORWARDED_FOR, otherwise we take the value returned by REMOTE_ADDR
zhangao0086 like this
0
raju123's Avatar, Join Date: Oct 2007
Newbie Member
Thankx
0
raju123's Avatar, Join Date: Oct 2007
Newbie Member
is any problem in Request.UserHostAddress.ToString()
0
sudamerica's Avatar
Newbie Member
hi sorry iam new, where should i put all that?
thanks a lot
0
pradeep's Avatar, Join Date: Apr 2005
Team Leader
What's your objective?
0
urstop's Avatar, Join Date: Oct 2007
Contributor
Thats a good point. If it is going to retreive the original IP, why do people use all these proxy sites to hide their traces? So, if we are going to use the SERVER VARIABLE specified by you, we will be knowing there true IPs, isin't it? Or is there a different way these proxy sites work?
0
pradeep's Avatar, Join Date: Apr 2005
Team Leader
There are two types of proxies transparent and anonymous, transparent server sends over the original IP, where anonymous hides the original IP, the above code will only work for a transparent proxy!
0
urstop's Avatar, Join Date: Oct 2007
Contributor
Ok thanks, that clears up things. As a suggestion, it would be good to add this info about transparent and anonymous proxies in your original message.
0
dilipv's Avatar, Join Date: Feb 2008
Newbie Member
Quote:
Originally Posted by pradeep
There are two types of proxies transparent and anonymous, transparent server sends over the original IP, where anonymous hides the original IP, the above code will only work for a transparent proxy!
Hi pradeep,

Can you help me to suggest how to use anonymous proxies. how to implement such proxies in asp.net application.

Thanks in advance.

Jitesh
programmer
0
gkumar's Avatar
Banned
This tutorial covers on fetching the exact client IP address. Here the author explains that using Request.ServerVariables("REMOTE_ADDR") can only bring the IP address of the proxy server. So the author finally decided to use...