兩個獲取http頁面的c#函數
2007/1/19 23:04:40

Author:bigeagle From:Internet

    一個用C#寫的windows應用程序,作用嘛,就是對asp程序已知的20種漏洞進行掃描,顯示源程序。在這個應用程序中用到兩種獲得http頁面的方法,一種是直接用httpwebrequest類,而另一種是同服務器通過tcp/ip建立socket連接,直接查詢端口80 , 為此我寫了以下兩個函數,第一個比較簡單,參數只有一個,就是要求的url , 另外一個比較復雜,也很通用,不僅可以請求http頁面,還可以和其他端口通信,如端口43的whois,端口25的smtp,端口21的ftp甚至pop3等等,三個參數分別是主機名,請求命令和端口。好了,看程序吧。
 
  //獲取http頁面函數
  private string Get_Http(string a_strUrl)
  {
  string strResult ;
  HttpWebRequest myReq = (HttpWebRequest)
  WebRequestFactory.Create(a_strUrl) ;
 
  try
  {
  HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
  Stream myStream = HttpWResp.GetResponseStream () ;
 
  StreamReader sr = new StreamReader(myStream , Encoding.Default);
  StringBuilder strBuilder = new StringBuilder();
  while (-1 != sr.Peek())
  {
  strBuilder.Append(sr.ReadLine()+"\r\n");
  }
 
  strResult = strBuilder.ToString();
  }
  catch(Exception exp)
  {
  strResult = "錯誤:" + exp.Message ;
  }
 
  return strResult ;
 
  }
 
 
  //通過同server建立tcp/ip連接,發送socket命令
  private string Get_Socket_Request(string a_strServer , string a_strRequest , Int32 a_intPort)
  {
  //Set up variables and String to write to the server
  Encoding ASCII = Encoding.Default ;
  string Get = a_strRequest + "Connection: Close\r\n\r\n";
  //string Get =
  Byte[] ByteGet = ASCII.GetBytes(Get);
  Byte[] RecvBytes = new Byte[256];
  String strRetPage = null;
 
  // IPAddress and IPEndPoint represent the endpoint that will
  // receive the request
  IPAddress hostadd = DNS.Resolve(a_strServer.Substring(7 ,a_strServer.Length - 7));
  IPEndPoint EPhost = new IPEndPoint(hostadd, a_intPort);
 
  //Create the Socket for sending data over TCP
  Socket s = new Socket(AddressFamily.AfINet, SocketType.SockStream,
  ProtocolType.ProtTCP );
 
  // Connect to host using IPEndPoint
  if (s.Connect(EPhost) != 0)
  {
  strRetPage = "Unable to connect to host";
  return strRetPage;
  }
 
  // Sent the GET text to the host
  s.Send(ByteGet, ByteGet.Length, 0);
 
  // Receive the page, loop until all bytes are received
  Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
  strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
 
  while (bytes > 0)
  {
  bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
  strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
  }
 
  return strRetPage ;
  } 

返回列表
返回首頁 主站蜘蛛池模板: 最近中文字幕电影大全免费版| 精品国产不卡一区二区三区| 国产精品自拍亚洲| 上原瑞穗最全番号| 日本男人操女人| 亚洲人成电影网站色| 渣男渣女抹胸渣男渣女app| 动漫人物差差差动漫网站| 青青国产在线视频| 国产欧美高清在线观看| 91精东果冻蜜桃星空麻豆| 女人是男人的未来1分29分| 免费观看国产小粉嫩喷水| 麻豆回家视频区一区二| 国产精品久久国产三级国不卡顿 | 国产精品日韩欧美亚洲另类| jizzzz中国| 成人av鲁丝片一区二区免费| 久久99热只有频精品8| 日韩内射美女片在线观看网站| 亚洲不卡中文字幕| 欧美成人精品第一区二区三区 | 亚洲爆乳少妇无码激情| 男女猛烈无遮挡午夜视频| 又嫩又硬又黄又爽的视频| 2022国产成人福利精品视频| 天天操天天操天天射| 中文字幕中韩乱码亚洲大片 | 黄色网站小视频| 婷婷六月久久综合丁香76| 中文无遮挡h肉视频在线观看| 日韩一区二区三区无码影院| 亚洲一区二区三区久久| 欧美成人www在线观看网页| 亚洲第一色在线| 激情在线小说图片视频区| 便器调教(肉体狂乱)小说| 精品一区二区三区在线观看| 国产手机精品一区二区| 怡红院成人在线| 好吊妞在线新免费视频|