天天看点

asp.net获取URL和IP地址

(转自:http://www.cnblogs.com/JuneZhang/archive/2010/11/26/1888863.html)

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

asp.net获取URL和IP地址
asp.net获取URL和IP地址

如果当前URL为 

asp.net获取URL和IP地址

http://localhost/search.aspx?user=http://csharp.xdowns.com&tag=%BC%BC%CA%F5 

asp.net获取URL和IP地址
asp.net获取URL和IP地址

通过HttpContext.Current.Request.Url.ToString()获取到的却是 

asp.net获取URL和IP地址
asp.net获取URL和IP地址

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

asp.net获取URL和IP地址
asp.net获取URL和IP地址

正确的方法是: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:                      

Request.Path:                          

Request.PhysicalApplicationPath:       

E:\WWW\testwebRequest.PhysicalPath:                  

E:\WWW\testweb\default.aspx

Request.RawUrl:                        

Request.Url.AbsolutePath:              

Request.Url.AbsoluteUrl:                

Request.Url.Host:                       

Request.Url.LocalPath:                 

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>

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>"

thisTLoc = top.location.href; <BR>

thisPLoc = parent.document.location; <BR>

thisTHost = top.location.hostname; <BR>

thisHost = location.hostname;<BR>

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>"

</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(); 

"没有可用的连接";

myIP地址就是服务器端的ip地址。

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

//获取登录者ip地址

string ip =

Request.ServerVariables["REMOTE_ADDR"].ToString(); 

<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 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 !=

sMacAddr =

objObject.MACAddress;

if(objObject.DNSHostName != null &&objObject.DNSHostName !=

sDNSName =

objObject.DNSHostName;

}

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

myForm.macAddress.value=sMacAddr;

 myForm.ipAddress.value=sIPAddr;

myForm.hostName.value=sDNSName;