精华内容
下载资源
问答
  • 在.net使用代理浏览网页

    千次阅读 2007-04-30 11:41:00
    在.net使用代理浏览网页作者: 51cto.com整理 出处:51cto.com  ( 9 ) 砖 ( 10 ) 好 评论 ( 0 ) 条 进入论坛 更新时间:2005-09-20 15:06关 键 词:.net阅读提示:本文介绍了如何在.net使用代理浏览网页,实现匿名...

     在.net使用代理浏览网页
    作者: 51cto.com整理 出处:51cto.com  ( 9 ) 砖  ( 10 ) 好  评论 ( 0 ) 条  进入论坛
    更新时间:2005-09-20 15:06
    关 键 词:.net
    阅读提示:本文介绍了如何在.net使用代理浏览网页,实现匿名代理

    不需要使用用户名密码的代理服务器,匿名代理

    <%@ Import Namespace="System.Net" %>

    <%@ Import Namespace="System.IO" %>

    <script language="C#" runat="server">

    void Page_Load(Object Src, EventArgs E) {

    myPage.Text = readHtmlPage("http://www.iwbuy.com");

    }

    private String readHtmlPage(string url)

    {

    String result;

    WebResponse objResponse;

    WebProxy proxyObject = new WebProxy("http://urproxy:port/",true);

    WebRequest objRequest = System.Net.HttpWebRequest.Create(url);

    objRequest.Proxy = proxyObject;

    objResponse = objRequest.GetResponse();

    using (StreamReader sr =

    new StreamReader(objResponse.GetResponseStream()) )

    {

    result = sr.ReadToEnd();

    // Close and clean up the StreamReader

    sr.Close();

    }

    return result;

    }

    </script>

    <html>

    <body>

    <b>下面的内容框可以显示你要浏览的网页

    <a href="http://www.iwbuy.com">www.iwbuy.com</a></b><hr/>

    <asp:literal id="myPage" runat="server"/>

    </body>

    </html>

    需使用用户名密码的代理服务器使用方法

    <%@ Import Namespace="System.Net" %>

    <%@ Import Namespace="System.IO" %>

    <script language="C#" runat="server">

    void Page_Load(Object Src, EventArgs E) {

    myPage.Text = readHtmlPage("http://www.iwbuy.com");

    }

    private String readHtmlPage(string url)

    {

    String result;

    HttpWebRequest makeReq =(HttpWebRequest)WebRequest.Create("http://www.iwbuy.com/");

    NetworkCredential giveCred = new NetworkCredential("username","password","domain");

    CredentialCache putCache = new CredentialCache();

    putCache.Add(new Uri("http://www.iwbuy.com/"), "Basic", myCred);

    makeReq.Credentials = myCache;

    WebResponse objResponse;

    objResponse = objRequest.GetResponse();

    using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()) )

    {

    result = sr.ReadToEnd();

    // Close and clean up the StreamReader

    sr.Close();

    }

    return result;

    }

    </script>

    <html>

    <body>

    <b>下面的内容框可以显示你要浏览的网页

    <a href="http://www.iwbuy.com">www.iwbuy.com</a></b>

    <hr/>

    <asp:literal id="myPage" runat="server"/>

    </body>

    </html>


    *************************************  
        *   一个基础的代理服务器类  
        *************************************  
        */  
      import   java.net.*;  
      import   java.io.*;  
       
      public   class   HttpProxy   extends   Thread   {  
              static   public   int   CONNECT_RETRIES=5;  
              static   public   int   CONNECT_PAUSE=5;  
              static   public   int   TIMEOUT=50;  
              static   public   int   BUFSIZ=1024;  
              static   public   boolean   logging   =   false;  
              static   public   OutputStream   log=null;  
              //   传入数据用的Socket  
              protected   Socket   socket;  
              //   上级代理服务器,可选  
              static   private   String   parent=null;  
              static   private   int   parentPort=-1;  
              static   public   void   setParentProxy(String   name,   int   pport)   {  
      parent=name;  
      parentPort=pport;  
              }  
       
              //   在给定Socket上创建一个代理线程。  
              public   HttpProxy(Socket   s)   {   socket=s;   start();   }  
       
              public   void   writeLog(int   c,   boolean   browser)   throws   IOException   {  
      log.write(c);  
              }  
       
              public   void   writeLog(byte[]   bytes,int   offset,   int   len,   boolean   browser)   throws   IOException   {  
      for   (int   i=0;i<len;i++)   writeLog((int)bytes[offset+i],browser);  
              }  
       
       
              //   默认情况下,日志信息输出到  
              //   标准输出设备  
              //   派生类可以覆盖它  
              public   String   processHostName(String   url,   String   host,   int   port,   Socket   sock)   {  
      java.text.DateFormat   cal=java.text.DateFormat.getDateTimeInstance();  
      System.out.println(cal.format(new   java.util.Date())   +   "   -   "   +   url   +   "   "    
                                  +   sock.getInetAddress()+"/n");  
      return   host;  
              }  
       
       
       
              //   执行操作的线程  
              public   void   run()   {  
      String   line;  
      String   host;  
      int   port=80;  
                      Socket   outbound=null;  
      try   {  
              socket.setSoTimeout(TIMEOUT);  
              InputStream   is=socket.getInputStream();  
              OutputStream   os=null;  
              try   {  
                                      //   获取请求行的内容  
      line="";  
      host="";  
      int   state=0;  
      boolean   space;  
      while   (true)   {  
              int   c=is.read();  
              if   (c==-1)   break;  
              if   (logging)   writeLog(c,true);  
              space=Character.isWhitespace((char)c);    
              switch   (state)   {  
              case   0:  
      if   (space)   continue;    
                      state=1;  
              case   1:  
      if   (space)   {  
              state=2;  
              continue;  
      }  
      line=line+(char)c;  
      break;  
              case   2:  
      if   (space)   continue;   //   跳过多个空白字符  
                          state=3;  
              case   3:  
      if   (space)   {  
              state=4;    
                                                              //   只取出主机名称部分  
              String   host0=host;  
              int   n;  
              n=host.indexOf("//");  
              if   (n!=-1)   host=host.substring(n+2);  
              n=host.indexOf('/');  
              if   (n!=-1)   host=host.substring(0,n);  
                                                              //   分析可能存在的端口号  
              n=host.indexOf(":");  
              if   (n!=-1)   {    
      port=Integer.parseInt(host.substring(n+1));  
      host=host.substring(0,n);  
              }  
              host=processHostName(host0,host,port,socket);  
              if   (parent!=null)   {  
      host=parent;  
      port=parentPort;  
              }  
              int   retry=CONNECT_RETRIES;  
              while   (retry--!=0)   {  
      try   {  
              outbound=new   Socket(host,port);  
              break;  
      }   catch   (Exception   e)   {   }  
                                                                      //   等待  
      Thread.sleep(CONNECT_PAUSE);  
              }  
              if   (outbound==null)   break;  
              outbound.setSoTimeout(TIMEOUT);  
              os=outbound.getOutputStream();  
              os.write(line.getBytes());  
              os.write('   ');  
              os.write(host0.getBytes());  
              os.write('   ');  
              pipe(is,outbound.getInputStream(),os,socket.getOutputStream());  
              break;  
      }  
      host=host+(char)c;  
      break;  
              }  
      }  
              }  
              catch   (IOException   e)   {   }  
       
              }   catch   (Exception   e)   {   }  
              finally   {  
              try   {   socket.close();}   catch   (Exception   e1)   {}  
              try   {   outbound.close();}   catch   (Exception   e2)   {}  
                    }  
              }  
       
       
              void   pipe(InputStream   is0,   InputStream   is1,  
                        OutputStream   os0,     OutputStream   os1)   throws   IOException   {  
      try   {  
              int   ir;  
              byte   bytes[]=new   byte[BUFSIZ];  
              while   (true)   {  
      try   {  
              if   ((ir=is0.read(bytes))>0)   {  
      os0.write(bytes,0,ir);  
      if   (logging)   writeLog(bytes,0,ir,true);  
              }  
              else   if   (ir<0)  
      break;  
      }   catch   (InterruptedIOException   e)   {   }  
      try   {  
              if   ((ir=is1.read(bytes))>0)   {  
      os1.write(bytes,0,ir);  
      if   (logging)   writeLog(bytes,0,ir,false);  
              }  
              else   if   (ir<0)    
      break;  
      }   catch   (InterruptedIOException   e)   {   }  
              }  
      }   catch   (Exception   e0)   {  
              System.out.println("Pipe异常:   "   +   e0);  
      }  
              }  
       
       
              static   public   void   startProxy(int   port,Class   clobj)   {  
      ServerSocket   ssock;  
      Socket   sock;  
                      try   {  
              ssock=new   ServerSocket(port);  
              while   (true)   {  
      Class   []   sarg   =   new   Class[1];  
      Object   []   arg=   new   Object[1];  
      sarg[0]=Socket.class;  
      try   {  
              java.lang.reflect.Constructor   cons   =   clobj.getDeclaredConstructor(sarg);  
              arg[0]=ssock.accept();  
              cons.newInstance(arg);   //   创建HttpProxy或其派生类的实例  
      }   catch   (Exception   e)   {    
              Socket   esock   =   (Socket)arg[0];  
              try   {   esock.close();   }   catch   (Exception   ec)   {}  
      }  
              }  
      }   catch   (IOException   e)   {  
      }  
              }  
       
       
              //   测试用的简单main方法  
              static   public   void   main(String   args[])   {  
      System.out.println("在端口808启动代理服务器/n");  
      HttpProxy.log=System.out;  
      HttpProxy.logging=false;  
      HttpProxy.startProxy(808,HttpProxy.class);  
                  }  
              }  
      //   HttpProxy的简单派生类  
      //   不记录主机名字  
      //   在日志输出的每一行前面加上一个'*'  
       
      import   java.io.*;  
      import   java.net.*;  
       
      public   class   SubHttpProxy   extends   HttpProxy   {  
              static   private   boolean   first=true;  
              public   SubHttpProxy(Socket   s)   {  
      super(s);  
              }  
              public   void   writeLog(int   c,   boolean   browser)   throws   IOException   {  
      if   (first)   log.write('*');  
      first=false;  
      log.write(c);  
      if   (c=='/n')   log.write('*');  
              }  
              public   String   processHostName(String   url,   String   host,   int   port,   Socket   sock)   {  
      //   直接返回  
      return   host;  
              }  
              //   测试用的简单main方法  
              static   public   void   main(String   args[])   {  
      System.out.println("在端口808启动代理服务器/n");  
      HttpProxy.log=System.out;  
      HttpProxy.logging=true;  
      HttpProxy.startProxy(808,SubHttpProxy.class);  
                  }  
       
       
      }  
     

    展开全文
  • VB.NET2010 下HTTP代理浏览网页的实现

    千次阅读 2013-10-08 11:38:52
    我在学习代理的时候发现了很多种人写的代理 当然有通讯用的有网页用的单位和办公室一般都使用HTTP代理因此我在总结其他人的代理的时候发现很多人都是C语言要不就是2005老版本的VB.NET语言写的要不就是把别人的文章...
             我在学习代理的时候发现了很多种人写的代理 当然有通讯用的有网页用的单位和办公室一般都使用HTTP代理因此我在总结其他人的代理的时候发现很多人都是C语言要不就是2005老版本的VB.NET语言写的要不就是把别人的文章整个拷贝过来也不进行实际的检查,很多别人写的代码在调试上都有一些小错误,学习起来很头疼,我吧代码简单整理了下用的是VB.NET2010语言的格式 希望对看后的人有一些帮助,少走一些弯路吧。笔记弯路走多了会大小编程爱好者的积极性。

             以下是模块代码:

    Imports System.Runtime.InteropServices
    Imports System.Net
    Imports System.Net.Sockets
    Imports System.Net.WebClient
    Imports WindowsApplication1.SockProxy
    
    Module 代理设置函数
        Public Const INTERNET_OPTION_TYPE_PROXY = 38
        Public Const INTERNET_OPEN_TYPE_PROXY = 3
        Public Const INTERNET_OPTION_SETTINGS_CHANGED = 39
        '调用API函数
        <DllImport("wininet.dll", SetLastError:=True)> _
        Public Function InternetSetOption(ByVal hInternet As IntPtr, ByVal dwOption As Integer, ByVal lpBuffer As IntPtr, ByVal lpdwBufferLength As Integer) As Boolean
        '窗口调用请把上面代码替换为下面的这行代码,或直接将Public  与 Function 中间加一个Shared 就可以在窗体重使用了 在模块中就用上面的代码'很多网上给的API函数都是VB6或VB2005用的 在2010就不能正常调用了
    	'Public Shared Function InternetSetOption(ByVal hInternet As IntPtr, ByVal dwOption As Integer, ByVal lpBuffer As IntPtr, ByVal lpdwBufferLength As Integer) As Boolean
        End Function
        Structure INTERNET_PROXY_INFO
            Public dwAccessType As Integer
            Public proxy As IntPtr
            Public proxyBypass As IntPtr
        End Structure
        Public Sub SetProxy(ByVal StrProxy As String)
            Dim _IP As INTERNET_PROXY_INFO
            _IP.dwAccessType = INTERNET_OPEN_TYPE_PROXY
            _IP.proxy = Marshal.StringToHGlobalAnsi(StrProxy)
            _IP.proxyBypass = Marshal.StringToHGlobalAnsi("local")
            Dim Inpt As IntPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(_IP))
            Marshal.StructureToPtr(_IP, Inpt, True)
            InternetSetOption(IntPtr.Zero, INTERNET_OPTION_TYPE_PROXY, Inpt, Marshal.SizeOf(_IP))
        End Sub
    End Module


    下面是调试代码:

    SetProxy("10.2.2.3:8080")  ’HTTP代理
    WebBrowser1.Navigate("http://www.163.com")   ' 正确代理WEB
    
    展开全文
  • 1.因为要使用burpsuite抓包,所以需要配置浏览器,通过本机代理浏览网页。 2.通过Internet选项,设置IE浏览器代理为127.0.0.1 端口4050。浏览器显示,无法连接到代理服务器。win10的防火墙关闭后尝试也不成功。不...
  • 在线代理 网页代理 ip代理 在线代理ip 代理ip 网页代理ip ip在线代理 在线代理 网页代理 ip代理 在线代理ip 代理ip 网页代理ip ip在线代理 ...
    展开全文
  • squid代理服务器浏览网页速度慢优化

    千次阅读 2009-11-17 22:45:00
    41的squid代理服务器出现以上警告,导致浏览网页速度超慢。 优化步骤: 1.查看 # ulimit -n1024 需要增大文件描述符,需要调整Ubuntu内核参数,调整方法如下: 2.squid重运行configure,重新编译安装 3.安装...

    起由:Your cache is running out of filedescriptors

    41的squid代理服务器出现以上警告,导致浏览网页速度超慢。

    优化步骤:

    1.查看

    # ulimit -n
    1024

    需要增大文件描述符,需要调整Ubuntu内核参数,调整方法如下:

    2.squid重运行configure,重新编译安装

    3.安装参数如下(./configure的配置项

    4.重新启动squid后,检查参数配置是否生效。squidclient mgr:info

    **************************************************

    在文件/etc/security/limits.conf

    中添加user hard nofile 65533

    在/etc/pam.d/common-session
    添加: session required pam_limits.so

    Some versions of squid have a compile-time limitation of 1024 maximum that cannot be increased by using ulimit at run-time.

     

    A new configuruation option max_filedesc has been added to the following versions of Squid:

     

    Red Hat Enterprise Linux 3: squid-2.5.STABLE3-6.3E.18

    Red Hat Enterprise Linux 4: squid-2.5.STABLE14-1.4E

    (This option is included in Squid for Red Hat Enterprise Linux 5 by default.)

     

    Squid needs to be updated to the specified versions or above in order to use the new configuration option.

     

    For example, to increase the maximum file descriptors to 4096, please do the following:

     

    1. In /etc/security/limits.conf , add this line:

      
       * - nofile 4096
       

       

    2. Save the file, logout and re-login to a shell. Use "ulimit" to check:

      
       # ulimit -a
       open files (-n) 4096
       

       

    3. Modify the /etc/squid/squid.conf and add this line:

      
       max_filedesc 4096
       

      (Notice: the value of max_filedesc should be the same as the value of nofile in /etc/security/limits.conf)

    4. Restart the squid service:

      
       # service squid restart
       

       

    Use "squidclient" to check:

     

    
     # squidclient mgr:info
    
    File descriptor usage for squid:
     Maximum number of file descriptors: 4096
    *****************************************************

     

    ./configure的配置项

    ./configure --prefix=/usr/local/squid --with-large-files --enable-useragent-log --enable-referer-log --enable-linux-netfilter --enable-x-accelerator-vary --disable-internal-dns --disable-mempools --with-maxfd=65535

    3.0版本去掉了以下选项:

    --enable-dlmalloc 不再需要

    --enable-epoll 系统会自己选择最优的I/O Loop Method

    --enable-truncate 不再需要

    --enable-follow-x-forwarded-for 没有此项配置了

    增加了以下选项:

    --disable-mempools 相当于2.7配置文件里面的memory_pools off,适合内存使用较大的情况,系统会调用free()来清除没用到的缓存内存

    --with-maxfd=65535 相当于ulimit -n 65535,2.7配置文件里面的max_filedescriptors 65535

     

    ******************************************************************************

    3.8 重运行configure

    有时候你可能发现有必要重新运行./configure。例如,假如你调整了内核参数,你必须再次运行./configure以使它能发现新设置。当你阅读本书时,你也发现你必须使用./configure选项来激活所需的功能。

    以相同的选项重运行./configure,使用如下命令:

    %config.status --recheck

    另一个技术是`touch config.status`文件,它更新了该文件的时间戳。这导致make在编译源代码之前,重新运行./configure脚本:

    % touch config.status
          
    % make
    展开全文
  • 今天打开google浏览器突然遇到‘无法连接到代理服务器’windows诊断的结果是配置的代理服务器未响应。解决方法:INternet选项--》连接--》局域网设置,把代理服务器前的钩去掉
  • 1.出现该问题的原因是:使用Charles时,会自动打开网络代理。正常退出后,也会替我们关闭代理,但是偶尔出现异常就没帮我们关闭。 2.如何解决:手动关闭网络代理即可。 1)打开mac设置,点击【网络】 2)点击...
  • 谷歌浏览器打不开网页

    千次阅读 2019-08-25 12:34:58
    今天起来发现谷歌浏览器和IE都打不开网页了,估计是我电脑代理又被修改了 在谷歌浏览器的设置--> 高级 --> 打开代理设置中 取消勾选即可修复问题。 ...
  • 原文: 这里我直接告诉大家办法,想追求真理的看下面的网站 方法1: SwitchySharp的规则中把 ...并且把对应条目的匹配模式由“通配符”切换成“正则表达式” ...goagent中的proxy.ini 文
  • 利用访问指定网页返回状态码判断代理使用情况 一般urllib使用代理ip的步骤如下 设置代理地址 创建Proxyhandler 创建Opener 安装Opener from urllib import request,error if __name__ == '__main__'...
  • 因为浏览器会自动调用本地的控件来播放网页上的内容,我猜可能是这里出现问题,我也将这些网站上的视频下载到本地播放,发现并没有发现有什么异常,都能正常播放,所以又排除了是我系统解码器的问题.接着就是FireFox...
  • 需求:在设置了代理后用webview访问网页需要弹出用户登录的弹窗,账号密码得从公司这边拿。 有人知道怎么解决吗
  • 结果随便试了一下,把IP换成localhost,发现火狐能够成功浏览网页,并且抓包也能够顺利进行了 ping了一下127.0.0.1和localhost,两者都有一样的IP,但放入代理服务器之后却会有这样的区别,说实话不太明白其中的...
  • 公司通过代理上网,C程序直接通过发http请求不能获取网页内容,故实现了下通过代理访问http网页的一个测试程序。 程序很简单,有几个重点 先通过socket直接连接代理服务器 向代理服务器发送HTTP的...
  • 谷歌浏览器设置代理

    千次阅读 2020-08-09 08:34:41
    如果要实现抓包等功能,需要设置代理。 设置 | 高级 | 搜索 代理 | 打开您计算机的代理设置 ,这样就进入到代理设置界面: 连接 | 局域网设置 | 去掉勾选 自动检测设置 | 勾选 为LAN使用代理服务器 ,地址填 ...
  • 关于Windows系统可以ping通,而无法浏览网页的情况作出记录
  • 我想这些应该都是刷的, 不光浏览量是刷的, 甚至那些无厘头的评论都是刷的。有人要问了, 你凭什么说别人是刷的评论呢? 难道评论还可以刷? 我想说是的。 比如:我们在浏览微博的时候,会经常发现一件事, 怎么每个微博...
  • 当您浏览互联网,通过隐藏的代理网站,不直接给你发送请求,但代理服务器,它显示您的个人信息,而不是代理服务器的信息。它们也可以用来疏通不同的组织和学校网络,如Facebook,Twitter的等网站   今天奉献...
  • 火狐浏览代理服务器拒绝连接

    千次阅读 2019-07-15 10:53:40
    解决办法: 1.进入“网络和共享中心”,打开“Internet选项” 2.进入“连接” 3.点击“局域网设置” 4.取消勾选代理服务器的选项
  • - 正确开启网页代理(HTTP)和安全网页代理(HTTPS)(如果需要) - 正确安装证书文件 - 未开启vpn 在此基础上,远程运行Anaconda-jupyter notebook,将无法访问网页,也无法抓包。考虑其原因,可能是jupit
  • 浏览网页错误类型大全

    千次阅读 2012-06-05 17:46:03
    502 Web 服务器作为网关或代理服务器时收到无效的响应。 WIN2003 SERVER IIS6.0 ASP 错误解析 事件 ID 描述 0100 内存不足。无法分配所需的内存。 0101 意外错误。函数返回 |。 0102 要求字符串...
  • 本地浏览php网页的方法

    千次阅读 2012-12-08 21:51:45
    本地浏览php网页的方法 最近找了个php源码网站!在服务器上传来传去看浏览效果,后来才知道有phpnow这个软件可以在本地浏览!果然是输到用时方恨少呀!给想在本地浏览php网页的朋友介绍一下。
  • 今天早上起来,想要看下邮件,结果莫名其妙出现这种错误无法浏览网页。用手机查了N种方法,然而并没有什么用,大多数回答就是告诉DNS设置错误,可是我并没有修改过,DNS也是默认获取的。 after仔细的审题(敲黑板)...
  • 谷歌浏览器设置代理服务器

    万次阅读 2020-02-04 11:48:11
    1.关闭谷歌浏览器 2.在cmd中输入命令启动: start chrome --proxy-server=socks://127.0.0.1:1080
  • 先贴出报错信息截图: 解决办法: ...系统偏好设置->网络->Wi-Fi->高级->代理->将网页代理(HTTP)和安全网页代理(HTTPS)这两个协议配置勾掉,不勾选 ->好->应用->再在浏览器中输入网址,即可。
  • 谷歌浏览器如何设置代理

    万次阅读 2018-10-11 13:05:00
    1.点击右上角如图所示的位置,再点击设置 2.点击左上角的设置 ...5.点击打开代理设置 ...7.这里有两种方式:一种是自动配置脚本需要,你填写代理脚本的地址 ... 一种是使用代理服务器,需...
  • 为IE浏览器和QQ设置HTTP代理方法

    千次阅读 2013-08-02 13:31:17
    “为什么要设置代理?”  “设置代理可以隐藏自己真实的IP地址,有效的增强上网安全...1,IE右键选择“属性”(也可以在IE正常浏览网页的时候打开工具栏里的“工具”选择“internet选项”)  http://bbs.cfanclu
  • ie浏览器出现代理服务器没有响应

    千次阅读 2018-06-04 19:46:15
    ie浏览器打开网页时出现“代理服务器没有响应”,现象如下图所示: 解决办法:internet选项——连接——局域网设置——代理服务器——取消勾选,如下图所示: Shylin...
  • 很多开发者都需要使用代理工具来调试接口,查看数据等等,...造成这种问题的原因就是charles等代理工具也拦截了电脑网页的请求,但是使用的是charles代理工具的证书,导致浏览器无法验证此网页的证书,进而导致了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,795
精华内容 21,118
关键字:

代理浏览网页