欢迎来到天天文库
浏览记录
ID:37924080
大小:139.00 KB
页数:14页
时间:2019-06-02
《ping程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ping程序设计课程名称:网络安全老师:姓名:班级:学号:日期:1、ping功能简介Ping是DOS命令,一般用于检测网络通与不通,也叫时延,其值越大,速度越慢PING(PacketInternetGrope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP
2、地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。Ping是Windows系列自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式:PingIP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。ping指的是端对端连通,通常用来作为可用性的检查,但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。2、程序流程图①请求版本信息,创建一个套接口②建立
3、IP选项首部③创建SockRaw套接字的接收/发送时限属性失败成功退出main函数,并返回一个值-1调用memset函数④判断终端的主机名获取信息⑤创建ICMP数据包,分配堆内存⑥接收/发送ICMP数据包⑦清空Socket库所占内存图1main函数流程图图1main函数流程图图1main函数流程图图1main函数流程图图1main函数流程图调用WSAStartup()函数请求版本信息判断其返回值返回值为0,即执行失败返回值为非0,即执行成功退出main函数,并返回一个值2调用传参解析函数用socket函数创建一个套接口,设置属性创建失败创
4、建成功退出main函数,并返回一个值3进入main函数步骤②图2创建套接字流程图bRecordRouteTRUEFALSE调用setsockopt()函数,并判断其返回值返回值为返回值为一个进入main函数步骤SOCKET_ERRORIP_OPTIONS③的属性获得当前错误的进程号,并输出错误信息进入main函数步骤③图3建立IP选项头部流程图调用setsockopt()函数设置套接字接收时限属性,判断其返回值设置失败设置成功取得错误的进程号,输出错误信息timeout=1000;退出main函数调用setsockopt()函数设置套接字
5、发送时限属性,判断其返回值设置失败设置成功取得错误的进程号,输出错误信息调用memset()函数填充数据段退出main函数图4创建SockRaw套接字的接收/发送时限属性流程图将点分十进制地址转化为二进制地址将该地址赋给dest.sin_addr.s_addr无效地址判断其值有效地址通过主机名获取主机信息为NULL不是NULL取得错误的进程号,输出错误信息,输出主机信息退出main函数进入main函数步骤⑤图5判断终端的主机名获取信息流程图利用HeapAlloc()分配堆内存函数分配成功分配失败调用memset()函数填充数据段输出堆内存
6、分配失败推出主函数调用ICMP首部初始化函数返回值-1图6分配堆内存流程图nCount=0nCount++nCount++==4break调用cksum发送ICMP数据包失败成功Y超时NNbwrote7、8、i++图10解析IP首部函数流程图3、源代码清单//ModuleName:Ping.c#include"windows.h"#include"winsock.h"#include"stdio.
7、8、i++图10解析IP首部函数流程图3、源代码清单//ModuleName:Ping.c#include"windows.h"#include"winsock.h"#include"stdio.
8、i++图10解析IP首部函数流程图3、源代码清单//ModuleName:Ping.c#include"windows.h"#include"winsock.h"#include"stdio.
此文档下载收益归作者所有