C#使用SOCKET获取ASPSESSIONID、PHPSESSID等Cookie
2013-11-19 01:09
686 查看
简单写了一个小类,获取ASPSESSIONID、PHPSESSID等WebClient无法获取的Cookies,如果高手有更好的意见,欢迎补充。
代码如下:
代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Net; 5 using System.Net.Sockets; 6 7 namespace EatOrange 8 { 9 // 使用SOCKET获取Cookie信息 10 class CookieGet 11 { 12 private Socket socket; 13 14 public string GetCookie(string strHost, string strGet, string strReferer) 15 { 16 IPEndPoint hostEndPoint; 17 IPAddress[] hostAddresses; 18 StringBuilder stringBuilder = new StringBuilder(); 19 byte[] byteSend; 20 21 // 首先构造HTTP请求头 22 stringBuilder.Append("GET " + strGet + " HTTP/1.1\r\n"); 23 stringBuilder.Append("Accept: */*\r\n"); 24 stringBuilder.Append("Referer: " + strReferer + "\r\n"); 25 stringBuilder.Append("Accept-Language: zh-CN\r\n"); 26 stringBuilder.Append("User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0"); 27 stringBuilder.Append("Host: " + strHost + "\r\n"); 28 stringBuilder.Append("Connection: Keep-Alive\r\n\r\n"); 29 30 byteSend = System.Text.Encoding.ASCII.GetBytes(stringBuilder.ToString()); 31 32 // 利用SOCKET发送HTTP协议 33 int conPort = 80; 34 35 // 获取DNS服务器信息 36 hostAddresses = Dns.GetHostAddresses(strHost); 37 38 // 给每个IP发送get请求(因为一个域名可能对应多个IP地址) 39 foreach (IPAddress addr in hostAddresses) 40 { 41 hostEndPoint = new IPEndPoint(addr, conPort); 42 43 socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 44 socket.Connect(hostEndPoint); 45 46 if (socket.Connected) 47 { 48 socket.Send(byteSend, byteSend.Length, 0); 49 } 50 } 51 // 获取服务器的返回信息 52 Byte[] byteReceive = new Byte[1024]; 53 Int32 bytes = socket.Receive(byteReceive); 54 55 string str = Encoding.Default.GetString(byteReceive, 0, bytes); 56 57 // 获取Cookie信息 58 59 int pos1, pos2; 60 pos1 = str.IndexOf("Set-Cookie: ") + 12; // 12 is the length of "Set-Cookie: " 61 62 if (pos1 == -1) 63 return "<Error>Not Found</Error>"; 64 65 pos2 = str.IndexOf("\r\n", pos1); 66 67 return str.Substring(pos1, pos2 - pos1); 68 } 69 } 70 }
相关文章推荐
- C#使用SOCKET获取ASPSESSIONID、PHPSESSID等Cookie
- ASP.NET中使用Razor语法(C#)怎样获取当前浏览器的cookie
- PHP - Manual手册 - CXLIX. Session 会话处理函数 - session.use_only_cookies指定是否在客户端仅仅使用 cookie 来存放会话 ID
- C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- [保存]C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- IIS安全工具UrlScan介绍 ASP.NET 两种超强SQL 注入免费解决方案( 基于IIS,使用免费工具) 批改或隐藏IIS7.5的Server头信息 移除X-Powered-By,MVC,ASP.NET_SessionId 的 HTTP头或者cookie名称
- 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- 【C#.NET】ASP.NET中实现页面间的参数传递 QueryString\Application\Session\Cookie
- 【C#.NET】ASP.NET状态管理 APPlication,Session,Cookie和ViewStat用法
- curl不使用文件存取cookie php使用curl获取cookie示例
- php中如何同时使用session和cookie来保存用户登录信息
- php学习笔记(二十六)php中session的初步使用(基于cookie的)
- 后台C#代码获取html控件的值使用的Request.Form["name"] 中间的那个应该是空间的name 而不是id
- Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net
- PHPSESSID的cookie//session_start()
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- ASP.Net中使用ClientID获取服务端控件ID
- 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- 关于PHP中浏览器禁止Cookie后,Session能使用吗?