zoukankan      html  css  js  c++  java
  • 获取Url链接内容

    一、获取链接整个HTML

        public string GetWholeHtmlCode(string url)
            {
                string strHtml = string.Empty;
                StreamReader strReader = null;
                HttpWebResponse wrpContent = null;      
                try
                {
                    HttpWebRequest wrqContent = (HttpWebRequest)WebRequest.Create(strUrl);
                    wrqContent.Timeout = 300000;
                    wrpContent = (HttpWebResponse)wrqContent.GetResponse();
                    if (wrpContent.StatusCode != HttpStatusCode.OK)
                    {
                        flgPageRetrieved = false;
                        strHtml = "Sorry, the web page is not run successful";
                    }
                    if (wrpContent != null)
                    {
                        strReader = new StreamReader(wrpContent.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                        strHtml = strReader.ReadToEnd();
                    }
                }
                catch (Exception e)
                {
                    flgPageRetrieved = false;
                    strHtml = e.Message;
                }
                finally
                {
                    if (strReader != null)
                        strReader.Close();
                    if (wrpContent != null)
                        wrpContent.Close();
                }
                return strHtml;
            }

    获取其它如纯文本、图片地址、链接地址请参考All-In-One Code Framework (ASP.NET),CSASPNETStripHtmlCode项目

    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:                       http://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>


  • 相关阅读:
    使用MobaXterm远程连接Ubuntu,启动Octave,界面不能正常显示
    ABP .Net Core 日志组件集成使用NLog
    ABP .Net Core Entity Framework迁移使用MySql数据库
    ABP前端使用阿里云angular2 UI框架NG-ZORRO分享
    阿里云 Angular 2 UI框架 NG-ZORRO介绍
    Visual Studio 2019 Window Form 本地打包发布猫腻
    VS Code + NWJS(Node-Webkit)0.14.7 + SQLite3 + Angular6 构建跨平台桌面应用
    ABP .Net Core 调用异步方法抛异常A second operation started on this context before a previous asynchronous operation completed
    ABP .Net Core To Json序列化配置
    .Net EF Core数据库使用SQL server 2008 R2分页报错How to avoid the “Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement.”
  • 原文地址:https://www.cnblogs.com/gossip/p/2184753.html
Copyright © 2011-2022 走看看