asp.net获取URL和IP地址

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 >

你可能感兴趣的:(asp.net)