CSU wifi免帐号自动登陆器

阅读: 评论:0

CSU wifi免帐号自动登陆器

CSU wifi免帐号自动登陆器

原理很简单,采用数据包提交的方式提交到服务端。

一下是源代码:(Ubuntu13.04 64位 Linux)

#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <arpa/inet.h>using namespace std;typedef void (*FUNC)(const char*);char* GetData(const string& filename="data.dat");
void SendData(const char* buf,const string& host,FUNC fun=NULL);
void ChkRet(const char* rcv);
void WriteData(const char* buf,int size,const string& filename);
void PrintFrame(const string& str="unknow");int main(int argc,char *argv[])
{try{char *dat=argc>=3?GetData(string(argv[2])):GetData();string host=argc>=2?argv[1]:"10.0.17.130";int slptime=argc>=4?atoi(argv[3]):1;while(true){try{SendData(dat,host,ChkRet);}catch(const char* info){PrintFrame(string(info)+string("ntPlease check your network."));}sleep(slptime);}delete[] dat;}catch(const char* info){cerr<<info<<endl;}return 0;
}char* GetData(const string& filename)
{ifstream fs;fs.open(filename.c_str(),ios::in|ios::binary);if(!fs) throw "Cannot open the data file";fs.seekg(0,ios::end);long flen&#llg();if(flen==0) throw "The data file is empty";fs.seekg(0,ios::beg);char *buf=new char[flen];fs.read(buf,flen);fs.close();return buf;
}void SendData(const char* buf,const string& host,FUNC fun)
{hostent *pURL = gethostbyname(host.c_str());if(pURL==NULL) throw "Cannot get hostname!!!";sockaddr_in addr;addr.sin_family = AF_INET;addr.sin_addr.s_addr = *((unsigned long*)pURL->h_addr);addr.sin_port = htons(80);//Connectint sockfd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);if(sockfd==-1) throw "socket error";if(connect(sockfd,(struct sockaddr *)&addr,sizeof(addr))==-1){close(sockfd);throw "Cannot connect the host!!!";}static char header[1024];sprintf(header,buf,host.c_str());//cout<<strlen(header)<<endl;if(send(sockfd, header, strlen(header), 0)==-1){close(sockfd);throw "Sending data error!!!";}static char pagebuf[BUFSIZ+1];if(fun){int rcvrt;rcvrt=recv(sockfd,pagebuf,BUFSIZ,0);rcvrt=recv(sockfd,pagebuf,BUFSIZ,0);pagebuf[rcvrt]='';fun(pagebuf);if(rcvrt==-1){close(sockfd);throw "Receiving data error!!!";}}close(sockfd);}void ChkRet(const char* rcv)
{PrintFrame(strstr(rcv,"FFFF")?"Succeed!":"Failed!");
}void PrintFrame(const string& str)
{time_t rawtime;time ( &rawtime );system("clear");cout<<"##############LoginRobot###############n"<<endl;cout<<"State:nt"<<str<<endl;cout<<"Time:nt"<<asctime (localtime ( &rawtime ))<<endl;cout<<"t[For CSU only.Made by KingDuan]"<<endl;cout<<"#######################################"<<endl;	
}


本文发布于:2024-02-03 04:46:07,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170690676748739.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:帐号   登陆器   CSU   wifi
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23