1. ホーム
  2. シーピー

asp.netで現在のurlを取得する方法

2022-02-24 03:08:07

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です。

リクエスト.Url.PathAndQuery

文字列 タイプになります。Request.Url.AbsolutePathとRequest.Url.Queryを合計したものと同じです。

リクエスト.Url.AbsolutePath

文字列 タイプです。クエリ文字列部分を除いた、現在のページURLの絶対パスを参照する。

例 /test/Default.aspx

リクエスト.Url.Query(クエリー

文字列 タイプです。現在のページURLのクエリ文字列を指し、"?"で始まるものを指します。

例: ?a=1&b=2

1. ASP.NET経由での取得



テストURLのアドレスがhttp://www.test.com/testweb/default.aspx、結果は次のようになります。



リクエスト.ApplicationPath: /testweb



Request.CurrentExecutionFilePathを指定します。/testweb/default.aspx



Request.FilePath。/testweb/default.aspx



Request.Path: /testweb/default.aspx



PhysicalApplicationPathです。E:\WWWtestwebRequest.PhysicalPath: E:\WWWtestweb.Desault.aspx



リクエスト.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。



リクエスト.Url.LocalPath: /testweb/default.aspx

<テーブル <スパン <スパン <スパン <スパン <スパン <スパン <スパン <スパン URL <スパン <スパン <スパン <スパン <スパン <スパン <スパン http://localhost:1897/News/Press/Content.aspx/123?id=1#toc <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.ApplicationPath <スパン <スパン <スパン <スパン <スパン <スパン / <スパン <スパン <スパン <スパン <スパン <スパン <スパン Request.PhysicalPath <スパン <スパン <スパン <スパン <スパン <スパン D:\ProjectsSolutionweb¥NewsPress¥Content.aspx <スパン <スパン <スパン <スパン <スパン <スパン <スパン System.IO.Path.GetDirectoryName(Request.PhysicalPath)を指定します。 <スパン <スパン <スパン <スパン <スパン <スパン D:\ProjectsSolutionWeb <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.PhysicalApplicationPath <スパン <スパン <スパン <スパン <スパン <スパン D:\ProjectsSolution <スパン <スパン <スパン <スパン <スパン <スパン <スパン System.IO.Path.GetFileName(Request.PhysicalPath)を指定します。 <スパン <スパン <スパン <スパン <スパン <スパン コンテンツ.aspx <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.CurrentExecutionFilePath <スパン <スパン <スパン <スパン <スパン <スパン <スパン /ニュース/プレス/コンテンツ.aspx <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.ファイルパス <スパン <スパン <スパン <スパン <スパン <スパン <スパン /ニュース/プレス/コンテンツ.aspx <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエストのパス <スパン <スパン <スパン <スパン <スパン <スパン <スパン /ニュース/プレス/コンテンツ.aspx/123 <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.RawUrl <スパン <スパン <スパン <スパン <スパン <スパン <スパン /ニュース/プレス/コンテンツ.aspx/123?id=1 <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url.AbsolutePath <スパン <スパン <スパン <スパン <スパン <スパン <スパン /ニュース/プレス/コンテンツ.aspx/123 <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url.AbsoluteUri <スパン <スパン <スパン <スパン <スパン <スパン <スパン http://localhost:1897/News/Press/Content.aspx/123?id=1 <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url. <スパン <スパン <スパン <スパン <スパン <スパン <スパン エイチティーティーピー <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url.Host <スパン <スパン <スパン <スパン <スパン <スパン ローカルホスト <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url.Port <スパン <スパン <スパン <スパン <スパン <スパン <スパン 1897 <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url.Authority <スパン <スパン <スパン <スパン <スパン <スパン ローカルホスト:1897 <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url.LocalPath <スパン <スパン <スパン <スパン <スパン <スパン <スパン /ニュース/プレス/コンテンツ.aspx/123 <スパン <スパン <スパン <スパン <スパン <スパン <スパン Request.PathInfo <スパン <スパン <スパン <スパン <スパン <スパン <スパン /123 <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url.PathAndQuery <スパン <スパン <スパン <スパン <スパン <スパン <スパン <スパン /ニュース/プレス/コンテンツ.aspx/123?id=1 <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url.クエリ <スパン <スパン <スパン <スパン <スパン <スパン <スパン ?id=1 <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url.Fragment <スパン <スパン <スパン <スパン <スパン <スパン <スパン リクエスト.Url.Segments

<スパン <スパン <スパン <スパン <スパン <スパン <スパン /



ニュース/



プレス/



コンテンツ.aspx/

<スパン <スパン <スパン <スパン <スパン <スパン <スパン 123

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> ".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> ".ThisTLoc: </tr></td>["];

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アドレスを取得します。 



システムを使用します。

文字列 myIP,myMac;



System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList; 



if ( addressList.Length>1) 



{ <未定義



myIP = addressList[0].ToString()。 



myMac = addressList[1].ToString()。 







さもなければ 







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>



オブジェクト 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/>Hostname: <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.ImpersonationLevelを指定します。



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 ! = null &&&& objObject.IPEnabled == true) <未定義



                          if(objObject.IPEnabled && objObject.IPAddress(0) ! =null && objObject.IPAddress(0) ! = "未定義")



                                        sIPAddr = objObject.IPAddress(0);



                          if(objObject.MACAddress ! = null &&objObject.MACAddressの ! = "未定義")



                    sMacAddr = objObject.MACAddress;



                          if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined")



                                        sDNSName = objObject.DNSHostName;



         }



</script>

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

       myForm.macAddress.value=sMacAddr;



myForm.ipAddress.value=sIPAddr。



       myForm.hostName.value=sDNSNameを指定します。



</script>