HttpContext.Current.Request.Url.ToString() 并不可靠。

如果当前URL为
http:
//
localhost/search.aspx?user=
http://csharp.xdowns.com
&tag=%BC%BC%CA%F5
通过HttpContext.Current.Request.Url.ToString()获取到的却是

http:
//
localhost/search.aspxuser=
http://csharp.xdowns.com
&tag=¼¼Êõ

正确的方法是:HttpContext.Current.Request.Url.PathAndQuery
1
、通过ASP.NET获取
如果测试的url地址是http:
//
www.test.com/testweb/default.aspx, 结果如下:
Request.ApplicationPath:
/
testweb
Request.CurrentExecutionFilePath:
/
testweb
/
default
.aspx
Request.FilePath:
/
testweb
/
default
.aspx
Request.Path:
/
testweb
/
default
.aspx
Request.PhysicalApplicationPath: E:/WWW/testwebRequest.PhysicalPath: E:/WWW/testweb/
default
.aspx
Request.RawUrl:
/
testweb
/
default
.aspx
Request.Url.AbsolutePath:
/
testweb
/
default
.aspx
Request.Url.AbsoluteUrl: http:
//
www.test.com/testweb/default.aspx
Request.Url.Host: www.test.com
Request.Url.LocalPath:
/
testweb
/
default
.aspx

2
、通过JS获取

<
table width
=
100
%
cellpadding
=
0
cellspacing
=
0
border
=
0
>

<
script
>

thisURL
=
document.URL;

thisHREF
=
document.location.href;

thisSLoc
=
self.location.href;

thisDLoc
=
document.location;

strwrite
=
"
<tr><td valign=top>thisURL: </td><td>[
"
+
thisURL
+
"
]</td></tr>
"

strwrite
+=
"
<tr><td valign=top>thisHREF: </td><td>[
"
+
thisHREF
+
"
]</td></tr>
"

strwrite
+=
"
<tr><td valign=top>thisSLoc: </td><td>[
"
+
thisSLoc
+
"
]</td></tr>
"

strwrite
+=
"
<tr><td valign=top>thisDLoc: </td><td>[
"
+
thisDLoc
+
"
]</td></tr>
"

document.write( strwrite );

</
script
>

thisDLoc
=
document.location;
<
BR
>

thisURL
=
document.URL;
<
BR
>

thisHREF
=
document.location.href;
<
BR
>

thisSLoc
=
self.location.href;
<
BR
>

<
script
>

thisTLoc
=
top.location.href;

thisPLoc
=
parent.document.location;

thisTHost
=
top.location.hostname;

thisHost
=
location.hostname;

strwrite
=
"
<tr><td valign=top>thisTLoc: </td><td>[
"
+
thisTLoc
+
"
]</td></tr>
"

strwrite
+=
"
<tr><td valign=top>thisPLoc: </td><td>[
"
+
thisPLoc
+
"
]</td></tr>
"

strwrite
+=
"
<tr><td valign=top>thisTHost: </td><td>[
"
+
thisTHost
+
"
]</td></tr>
"

strwrite
+=
"
<tr><td valign=top>thisHost: </td><td>[
"
+
thisHost
+
"
]</td></tr>
"

document.write( strwrite );

</
script
>

thisTLoc
=
top.location.href;
<
BR
>

thisPLoc
=
parent.document.location;
<
BR
>

thisTHost
=
top.location.hostname;
<
BR
>

thisHost
=
location.hostname;
<
BR
>

<
script
>

tmpHPage
=
thisHREF.split(
"
/
"
);

thisHPage
=
tmpHPage[ tmpHPage.length
-
1
];

tmpUPage
=
thisURL.split(
"
/
"
);

thisUPage
=
tmpUPage[ tmpUPage.length
-
1
];

strwrite
=
"
<tr><td valign=top>thisHPage: </td><td>[
"
+
thisHPage
+
"
]</td></tr>
"

strwrite
+=
"
<tr><td valign=top>thisUPage: </td><td>[
"
+
thisUPage
+
"
]</td></tr>
"

document.write( strwrite );

</
script
><
tr
><
td
>

=================
获取IP
1
、ASP.NET中获取

获取服务器的IP地址:
using
System.Net;

string
myIP,myMac;
System.Net.IPAddress[] addressList
=
Dns.GetHostByName(Dns.GetHostName()).AddressList;
if
( addressList.Length
>
1
)
{
myIP = addressList[0].ToString();
myMac = addressList[1].ToString();
}
else
{
myIP = addressList[0].ToString();
myMac = "没有可用的连接";
}
myIP地址就是服务器端的ip地址。

获取客户端的ip地址,可以使用

//
获取登录者ip地址
string
ip
=
Request.ServerVariables[
"
REMOTE_ADDR
"
].ToString();
2
、通过JS获取
<
html
>
<
head
>
<
title
></
title
>
<
meta http
-
equiv
=
"
Content-Type
"
content
=
"
text/html; charset=gbk
"
>
</
head
>

<
body
>

<
object
classid
=
"
CLSID:76A64158-CB41-11D1-8B02-00600806D9B6
"
id
=
"
locator
"
style
=
"
display:none;visibility:hidden
"
></
object
>
<
object
classid
=
"
CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223
"
id
=
"
foo
"
style
=
"
display:none;visibility:hidden
"
></
object
>

<
form name
=
"
myForm
"
>
<
br
/>
MAC地址:
<
input type
=
"
text
"
name
=
"
macAddress
"
>
<
br
/>
IP地址:
<
input type
=
"
text
"
name
=
"
ipAddress
"
>
<
br
/>
主机名:
<
input type
=
"
text
"
name
=
"
hostName
"
>
</
form
>

</
body
>
</
html
>
<
script language
=
"
javascript
"
>
var sMacAddr
=
""
;
var sIPAddr
=
""
;
var sDNSName
=
""
;

var service
=
locator.ConnectServer();
service.Security_.ImpersonationLevel
=
3
;
service.InstancesOfAsync(foo,
'
Win32_NetworkAdapterConfiguration
'
);

</
script
>

<
script FOR
=
"
foo
"
EVENT
=
"
OnObjectReady(objObject,objAsyncContext)
"
LANGUAGE
=
"
JScript
"
>
if
(objObject.IPEnabled
!=
null
&&
objObject.IPEnabled
!=
"
undefined
"
&&
objObject.IPEnabled
==
true
)
{
if(objObject.IPEnabled && objObject.IPAddress(0) !=null && objObject.IPAddress(0) != "undefined")
sIPAddr = objObject.IPAddress(0);
if(objObject.MACAddress != null &&objObject.MACAddress != "undefined")
sMacAddr = objObject.MACAddress;
if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
</
script
>

<
script FOR
=
"
foo
"
EVENT
=
"
OnCompleted(hResult,pErrorObject, pAsyncContext)
"
LANGUAGE
=
"
JScript
"
>

myForm.macAddress.value
=
sMacAddr;
myForm.ipAddress.value
=
sIPAddr;
myForm.hostName.value
=
sDNSName;
</
script
>

















































































































































































