分享
 
 
 

最近在编一个通过代理实现网页模拟点击和POST的Internet程序

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

初步的思想是想用socket来实现网页的模拟点击和表单的POST

至于有什么用这个就很难讲了,大家可以做一个基于WEB的邮箱客户端,也可以做一个半自动的申请器,当然也可以用到别的地方去,但是现在我现在实在没有时间来完成它,原因很简单,因为我今年大四,接下来要参加全国软件水平的软件设计师考试,郁闷,上次下午过了,上午还差一点。还要完成一个毕业设计,是一个基于NDIS的网络数据监测控制软件,这个头有点大了,还没着手,准备就快要开始了,自己给自己一个最后的期限就是明天开始。还有CET-6和教师资格证,晕啊,时间不够了!

现面来说点自己这几天编程的经验。在CSDN中看到有位高人说这个网络程序可以用很多方法来做,我也试过用WININET,但是感觉以后自己来驾驭它会很困难,越是底层的东西就越好控制,当然还有很多可以用的技术,比如WINHTTP,或者COM,但是我没这么好的基础,慢慢学嘛,所以我就采用了socket来实现。有经验的程序员肯定不会有很大的问题,不过我也还是初学者,所以当然走了很多很多的弯路,用了很多很多的时间来整理各种各样的资料。呵呵,有点跑题了,不说这个了..

我发现使用网络数据截获软件可以很方便的观察数据包的收发过程,连一个CONNECT函数都有相应的状态数据包,具体研究如下:

首先,我建立一个SOCKET,然后,使用一个CONNECT,连接到代理服务器及其端口上,当然前提是你的代理服务器支持CONNECT(大部分HTTP代理可以支持CONNECT),成功后服务器返回一个确认信号,这个信号中包含了第二次握手信息,请求我的机器的确认,于是我的机器就给它一个确认的信号。这样两次握手完成,建立了一个基于TCP的连接。

看图:

step1 Source IP =====> Destination IP SYN: 1 (请求连接标志)

step2 Source IP <===== Destination IP ACK: 1 (连接确认标志) SYN: 1 (再次请求连接标志)

step3 Source IP =====> Destination IP ACK: 1 (连接确认标志)

有连接就好了,这样就可以想代理服务器IP发送数据包了,不熟悉HTTP协议的朋友请去看看相关的RFC1945,英文不好的也可以去看中文的RFC,给出链接如下:点击http://www.leepig.com/rfc/RFC1945.txt。

具体的我不多说了,来看看怎么构造HTTP头文件吧。现面给出一个例子。

Version: HTTP/1.0

Method: GET

URI: http://www.163.com/

Accept: */*

Accept-Language: zh-cn

Cookie: ******

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; Maxthon)

Host: www.163.com

Proxy-Connection: Keep-Alive

使用建立好的SOCKET函数发送这个头文件这样就可以向代理服务器请求www.163.com的页面了。但是在程序中怎么发送呢?看了RFC文档的就没问题了,如果还不明白,那我只好说一点了,不说具体的方法,说点实质的东西。

发送括号里的内容给代理服务器 (GET http://www.163.com/ HTTP/1.0 \r\nAccept: */*\r\nAccept-Language: zh-cn\r\nCookie: ******\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; Maxthon)\r\nHost: www.163.com\r\nProxy-Connection: Keep-Alive\r\n\r\n)

这里有特别注意的几点,也是我的失败的经验:******就是这个网站建立的COOKIE,大家可以到系统盘符下面去查看,当然也可以有别的办法获得。网站请求的URL必须要以“/”结尾,不然得不到这个网址得HTML代码,特别注意,换行符使用“\r\n”,最后一定要有两个“\r\n”,不然也会发生错误的。

如果没有别的问题这样就可以了,应该能用RECEIVE函数来获得返回的HTTP头文件和HTML代码了,不过这样不是很完美,如果你要最完美的获得所有的内容,就要完全的模拟浏览器来获得所有的图片的连接,那么呵呵就要这么做,分析获得的HTML代码,在获得的代码中如果有超链接标志的,那么就把这个超链接获得出来,再建立一个SOCKET来发送一个类似于上面描述的HTTP头到代理服务器,就这样每碰到一个就发送一个SESSION,这才是真正的模拟,呵呵。

可惜现在很多人都不肯说,大家忙嘛,没办法,可是这个不是理由,关键是你想不想帮别人,我会不断发我的经验的,要相关资料的朋友请发送EMAIL到rikzjy@gmail.com,我很乐意帮助你们做你们的朋友,最后祝大家愉快!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有