
石家庄广播电视大学论文.pdf
17页石家庄广播电视大学毕业论文石家庄广播电视大学毕业论文 网络地址的更变验证网络地址的更变验证 姓姓名名::崔岳嵩 学学号号::133010076 学校名称学校名称::石家庄广播电视大学 专专业业::计算机应用技术 年年级级: :2012 级 日日期期::2014.10.29 第 2 页 首先介绍一下我们制作验证工具的一种编程语言,次语言为“易语言”是一种汉化窗口 式编程,以下是对易语言的详细介绍, 易语言是一门计算机编程语言以“易”著称,以中文作为程序代码表达的语言形式易语言的创始人 是吴涛早期版本的名字为 E 语言易语言最早的版本的发布可追溯至 2000 年 9 月 11 日可以说, 创造易语言的初衷是进行用中文来编写程序的实践从 2000 年至今,易语言已经发展到一定的规模: 功能上、用户数量上都十分可观 易语言的安装办法很简单,我们这次用的是易语言 5.11 为例,下边是安装方法: 1、在搜索地址栏输入易语言官网,回车如图: 2、进入易语言官网,点击易语言导航栏处的产品下载 3、然后,滚动滚动条,看到两个版本的程序,一个是精简版,另一个是完整版,初学者可以选择完整 版,里面有一些学习资料。
点击下载好了的易语言 5.11 安装程序,弹出如图对话框,点击下一步 第 3 页 勾选我同意,然后点击下一步 选择易语言 5.11 安装的路径,最好不要放在 C 盘了 第 4 页 默认即可,点击下一步 继续,点击下一步 继续下一步,如果想把易 语言 5.11 图标放到任务栏,则勾选下面快速启动 第 5 页 点击安装即可 此处,需要等待一两 分钟的样子,然后下一步 弹出易语言 5.11 窗口界面,点击 windows 窗口程序,即可使用易语言 5.11 了 第 6 页 弹出易语言 5.11 窗口界面,点击 windows 窗口程序,即可使用易语言 5.11 了 单击 windows 窗口程序 第 7 页 ①是按钮, ②是编辑框, ③文字标签, 单击按钮拖动到 windows 窗口程序上就可以自己绘画自己的程序界面了 ④是一些组件的属性, 第 8 页 我们把窗口界面做成这个样子, 然后双击“验证”开始我们的代码, 系统自动生成按钮按下的事件,我们写下代码为, . 第 9 页 .版本 2 .支持库 internet .如果 (编辑框 1.内容 = “”) 信息框 (“您还没有输入账号!!”, 0, ) .否则 .如果 (编辑框 2.内容 = “”) 信息框 (“您还没输入密码!!”, 0, ) .否则 .如果 (连接发信服务器 (“”, 25, 编辑框 1.内容, 编辑框 2.内容, ) = 真) 连接发信服务器 (“”, 25, 编辑框 1.内容, 编辑框 2.内容, ) 信息框 (“密码正确”, 0, ) .否则 信息框 (“密码错误”, 0, ) _启动窗口.销毁 () .如果结束 载入 (窗口 1, , 假) .如果结束 然后单击程序启动回到 windows 窗口程序页面。
我们双击一下提示做一些提示信息, 第 10 页 编辑框 1.内容 = “输入账号密码后点击!验证!” 编辑框 2.内容 = “输入账号密码后点击!验证!” 程序界面会显示这样 编辑框 1.内容 = “” 编辑框 2.内容 = “” 我们写完了老调试一下程序,单击上边的调试按钮, 会弹出我们的自己所绘制的程序界面 第 11 页 我们在上边输入一个错误的 号码来验证一下, 单击验证来进行测试, 系统提示我们为错误的 号码 我们来输入一个正确的 号码来试一下 此 号为个人 号, 第 12 页 单击验证来进行测试 通过此验证说明 账号密码验证成功,程序没有出错, 以下是 C 语言的账号密码验证: #include #include #include #include #include #include #include #include #include #include #include #define SERVER ““ 第 13 页 #define PORT80 #define THREAD_NUM 5 pthread_mutex_t sock_mutex; pthread_cond_t sock_cond; char* gen_request() { /* text packet get from wireshark */ strcat(text, “POST /hack/vote.php?type=2 HTTP/1.1/r/n“); strcat(text, “Host: [url][/url]/r/n“); strcat(text, “User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20061201 Firefox/2.0.0.3 (Ubuntu-feisty)/r/n“); strcat(text,“Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5/r/n“); strcat(text, “Accept-Language: zh-cn,zh;q=0.5/r/n“); strcat(text, “Accept-Encoding: gzip,deflate/r/n“); strcat(text, “Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7/r/n“); strcat(text, “Keep-Alive: 300/r/n“); strcat(text, “Connection: keep-alive/r/n“); strcat(text, “Referer: [url] strcat(text,“Cookie:usrtime=1178023651; lasturl=http%3A%2F%2F%2Fhack%2Fvisit.php%3Ftype%3D1; loginurl=http%3A%2F%2F%2Fhack%2Fvote.php%3Ftype%3D2; usrsid=XgVB1KO7mVEanJwLbwJ0lqXBSHErTAcN;usripfrom=Unknow;usrtime=1178023650; lasturl=http%3A%2F%2F%2F/r/n“); strcat(text, “Content-Type: application/x-www-form-urlencoded/r/n“); strcat(text, “Content-Length: 10/r/n“); strcat(text, “/r/n“); strcat(text, “voteid=276“); 第 14 页 return text; } void* sock_thread(void* data) { while(1) { /* wait to start vote */ pthread_mutex_lock( pthread_cond_wait( pthread_mutex_unlock( struct hostent* hostinfo; struct sockaddr_in name; name.sin_family =AF_INET; name.sin_port = htons(PORT); hostinfo = gethostbyname(SERVER); if(hostinfo == NULL) continue; name.sin_addr = *(struct in_addr*)hostinfo-h_addr; int sock = socket(PF_INET, SOCK_STREAM, 0); if(sock 0) continue; /* connect to the server */ if(connect(sock, (struct sockaddr*) char* text = gen_request(); 第 15 页 /* send it !!! */ write(sock, text, strlen(text) + 1); memset(text, 0, sizeof(char) * 2048); free(text); /* well. better receive it */ text = (char*)malloc(sizeof(char) * 1024); while(1) { int nbyte = recv(sock, text, 1024, 0); if(nbyte 1024) break; } free(text); /* close the connection */ close(sock); } } int main(int argc, char* argv[]) { /* initialize */ pthread_t* arr_pid = (pthread_t*)malloc(sizeof(pthread_t) * THREAD_NUM); pthread_mutex_init( pthread_cond_init( /* create all the thread */ int i; 第 16 页 for(i = 0; i THREAD_NUM; i++) pthread_create( while(1) { /* sleep for a while to let one of the thread to go */ usleep(200); pthread_cond_signal( } /* clean up all the thread */ for(i = 0; i THREAD_NUM; i++) pthread_join(arr_pid[i], NULL); return 0; 参考文献: 百度百科,易语言基础。
