|
|
|
|
|
| | |
Retrieve a Users IP Address
Using ASP or Active Server Pages it is actually quite easy to retrieve a
users IP Address.
REMOTE_ADDR
and HTTP_X_FORWARDED_FOR are
the two server variables
we are interested in in order to attempt to capture a users IP address.
Many people simply grab the IP Address like so.
<%
Dim UserIPAddress
UserIPAddress = Request.ServerVariables("REMOTE_ADDR")
%>
This however is a better
way to do it.
<%
Dim UserIPAddress
UserIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If UserIPAddress = "" Then
UserIPAddress = Request.ServerVariables("REMOTE_ADDR")
End If
%>
The reason we look for the HTTP_X_FORWARDED_FOR
value 1st is because of proxy servers and things of that nature as many
users are behind one. If that value is not there we just grab the
REMOTE_ADDR.
Even by doing this there are going to be times when we do not get an IP
Address or what we get is not accurate. There really is not anything you can
do about that.
Regarding there server variables you can always loop through them as well
and show MOST of them which is very helpful when testing.
<table border="1" width="500"
style="border-collapse: collapse">
<%
For each item in Request.ServerVariables
Response.Write("<tr><td>" & item & "</td><td>")
Response.Write(Request.ServerVariables(item))
Response.Write("</td></tr>" & vbCrLf)
Next
%>
</table>
Your going to see a lot of server information you never knew existed
when doing that.
Similar to this below.
APPL_MD_PATH |
/LM/W3SVC/1/ROOT |
APPL_PHYSICAL_PATH |
c:\inetpub\wwwroot\ |
AUTH_PASSWORD |
|
AUTH_TYPE |
|
AUTH_USER |
|
CERT_COOKIE |
|
CERT_FLAGS |
|
CERT_ISSUER |
|
CERT_KEYSIZE |
|
CERT_SECRETKEYSIZE |
|
CERT_SERIALNUMBER |
|
CERT_SERVER_ISSUER |
|
CERT_SERVER_SUBJECT |
|
CERT_SUBJECT |
|
CONTENT_LENGTH |
0 |
CONTENT_TYPE |
|
GATEWAY_INTERFACE |
CGI/1.1 |
HTTPS |
off |
HTTPS_KEYSIZE |
|
HTTPS_SECRETKEYSIZE |
|
HTTPS_SERVER_ISSUER |
|
HTTPS_SERVER_SUBJECT |
|
INSTANCE_ID |
1 |
INSTANCE_META_PATH |
/LM/W3SVC/1 |
LOCAL_ADDR |
192.168.1.100 |
LOGON_USER |
|
PATH_INFO |
/emailform/server.asp |
PATH_TRANSLATED |
c:\inetpub\wwwroot\emailform\server.asp |
QUERY_STRING |
|
REMOTE_ADDR |
192.168.1.100 |
REMOTE_HOST |
192.168.1.100 |
REMOTE_USER |
|
REQUEST_METHOD |
GET |
SCRIPT_NAME |
/emailform/server.asp |
SERVER_NAME |
poseidon |
SERVER_PORT |
80 |
SERVER_PORT_SECURE |
0 |
SERVER_PROTOCOL |
HTTP/1.1 |
SERVER_SOFTWARE |
Microsoft-IIS/5.1 |
URL |
/emailform/server.asp |
HTTP_ACCEPT |
*/* |
HTTP_ACCEPT_LANGUAGE |
en-us |
HTTP_CONNECTION |
Keep-Alive |
HTTP_HOST |
poseidon |
HTTP_USER_AGENT |
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR
1.1.4322) |
HTTP_ACCEPT_ENCODING |
gzip, deflate |
HTTP_X_REWRITE_URL |
/emailform/server.asp |
|
|
|
|
|
|
|
|
|
|