VC实现自动论坛回复功能



                                                                                            在此纪念几天的辛劳

    这几天没事自己试了试VC的网页的自动回复功能的实现,于是呼百度一下就找到了本论坛里的大神的帖子,如果想自己学习请移  “ wangningyu ” 大神的帖子http://blog.csdn.net/wangningyu/article/details/4526357   帖子是好贴,可是里面也有许多问题,代码有错误,为了不让后来者也多走误区,分享我的经验

    1、首先是抓包工具,这里推荐Http Watch和OmniPeek这两种,我觉得都挺好用的。

    2、自己找一个论坛(本例中是没有图片验证的论坛),这里我用了CSDN里的博客,PS:给如果管理带来的困扰请谅解,自己手动回复一个(记得抓包)抓包的内容啥的分析请参考相关知识,我这里需要说的是,注意格式,记住在Cookie后面一定有“两个”换行!!这里给大家贴张图片  (部分敏感信息给擦除了不影响学习)

看到最后那个Cookie的东西没有一定在最后给两个回车!!我在这都耽误了一天!!!!郁闷这个是你回复的内容!!也要加上,具体对比下面的代码!!PS:下面的代码里的Cookie都修改过,但是格式都是对了的!!

#include "stdio.h" 
#include "winsock2.h"   
#pragma   comment(lib,"ws2_32.lib")   

int main(int argc, char* argv[])
{
	SOCKADDR_IN	saServer;
	LPHOSTENT	lphostent;
	WSADATA		wsadata;
	SOCKET		hsocket;
	
	int		nRet;
	char*   host_name=("blog.xxxx.net");
	//下面的格式很重要,记住Cookie后面有两个回车----> /r/n/r/n
	char*   req=("POST /wxxxxx/comment/submit?id=xxxxx HTTP/1.1\r\n\
Accept: */*\r\n\
X-HttpWatch-RID: 94113-10021\r\n\
Content-Type: application/x-www-form-urlencoded\r\n\
X-Requested-With: XMLHttpRequest\r\n\
Referer: http://blog.csdn.net/w_xuexi/article/details/35993689\r\n\
Accept-Language: zh-CN\r\n\
Accept-Encoding: gzip, deflate\r\n\
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko\r\n\
Host: blog.csdn.net\r\n\
Content-Length: 33\r\n\
Connection: Keep-Alive\r\n\
Cache-Control: no-cache\r\n\
Cookie: BAIDU_DUP_lcr=http://www.baidu.com/s?tn=82033038_8_hao_pg&ie=utf-8&bs=csd&f=8&rsv_bp=1&wd=csdn&rsv_sug3=3&rsv_sug4=488&rsv_sug1=4&rsv_sug2=0&inputT=4462; __utmc=172242236283; UserName=wxxxexi; UserInfo=J1%2FANwG0xxxx1nrZTFUpoXQa8FXyF1mIbw7EnoCkMshQd8P%2BK2blKyZkeZjxzj2xxxxxxB1q82iqWDo2Ws51QhsJhsltuxxxxxxImffTEwWWv3mUGE9baNtpx; \
UserNick=wxxxx; AU=DDE; access-token=b0925e2d-138f-4cb5-a816-33a40e109ec2; dc_session_id=140xxx270122; __utma=1722xxx83.1804244634.140423385851.1404385851.1404448258.2; __utmz=172232236283.1404448258.2.2.utmcsr=baidu|utmccn=(organic)|utmcmd=organic|utmctr=csdn; dc_tos=n86786; uuid_tt_dd=25300xxxxx9327791_20140703; __message_sys_msg_id=0;\
 __message_gu_msg_id=0; __message_cnel_msg_id=0; __message_district_code=61xxx00; __message_in_school=0; UN=w_xuexi; UE=\"9xxxxx@qq.com\"; __utmb=17226s283.6.10.1404448258; uuid=3804a194-3ae0-4a61-adc7-ed0e22842fe3; bdshare_firstime=1404385892358; avh=35993689\r\n\r\n\
 commentid=&content=开心&replyId=");
  
	// 初始化套接字
	 if(WSAStartup(MAKEWORD(2,2),&wsadata))   
		 printf("初始化SOCKET出错!");
	
	lphostent=gethostbyname(host_name);   
	if(lphostent==NULL)   
		printf("lphostent为空!");
	hsocket   =   socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);   
	saServer.sin_family = AF_INET;   
	saServer.sin_port = htons(80);   
	saServer.sin_addr = *((LPIN_ADDR)*lphostent->h_addr_list);
	
	// 利用SOCKET连接
	nRet = connect(hsocket,(LPSOCKADDR)&saServer,sizeof(SOCKADDR_IN));   
	if(nRet == SOCKET_ERROR)   
	{   
		printf("建立连接时出错!");   
		closesocket(hsocket);   
		return 0;   
	}
	
	// 利用SOCKET发送
	nRet = send(hsocket,req,strlen(req),0);
	if(nRet==SOCKET_ERROR)
	{
		printf("发送数据包时出错!");
		closesocket(hsocket);
	}
	
	char   Dest[3000];   
	nRet=1;   
	//下面的读取内容可能有点问题,有时会有两个返回信息,不用理会第二个!!
	while(nRet>0)   
	{
		// 接收返回数据包
		nRet=recv(hsocket,(LPSTR)Dest,sizeof(Dest),0);   
		if(nRet>0)   
			Dest[nRet]=0;   
		else   
			Dest[0]=0;
		
		// 显示返回数据包的大小、内容
		printf("\nReceived   bytes:%d\n",nRet);   
		printf("Result:\n%s",Dest);   
	}
	return 0;
}
PS:祝大家学习愉快!!!


由于网页面板问题,可能让代码有些地方有点乱,自己调整

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一般论坛都会有隐藏贴,小米论坛更为严重,最近新入手了小米盒子,浏览小米论坛太痛苦了,基本上所有帖子都是隐藏贴,于是写了个半自动回复工具。本程序不光可以在小米论坛回复,不光是恢复隐藏贴,还适用于所有的ctrl+enter模式发内容的地方哦,各位试试吧。 【ctrl+~】:自动随机选择预置回复语+两个随机表情(仅仅只适用于小米论坛的表情代码),并 ctrl+enter发送。 【ctrl+1】:自动收集经典回复语到本程序的预置内容库(好吧,就是个ini文件)。 怎么用呢,左手键盘,右手鼠标,遇到需要回复的帖子:鼠标点回复框,左手ctrl+~,搞定 如果你别的软件有快捷键ctrl+~或者是ctrl+1和本工具冲突的话,本工具是没法用的哦,需要关闭其他软件占用的快捷键。好多软件的老板键都是ctrl+~,请各位注意。另外如果回复的时候需要验证码,可能就有点郁闷,只能粘贴回复语,不能直接提交。。 逛论坛的时候,发现别人发的回复语,比较通用型的那种,鼠标选取起来,然后ctrl+1,这个回复语就到了咱的库里了,等你ctrl+~回复的时候就能用上了,退出程序可点击右下角托盘区图标,还有暂停功能哦。 如果是在别的论坛发帖或者是聊QQ的时候,不需要回复有那个小米论坛的表情代码后缀,可以打开配置文件设置一下,配置文件里面有说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值