ping程序分析报告

上传人:油条 文档编号:26312040 上传时间:2017-12-25 格式:DOC 页数:18 大小:114.50KB
返回 下载 相关 举报
ping程序分析报告_第1页
第1页 / 共18页
ping程序分析报告_第2页
第2页 / 共18页
ping程序分析报告_第3页
第3页 / 共18页
ping程序分析报告_第4页
第4页 / 共18页
ping程序分析报告_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《ping程序分析报告》由会员分享,可在线阅读,更多相关《ping程序分析报告(18页珍藏版)》请在金锄头文库上搜索。

1、ping 程 序 分 析 报 告课程名称: 老 师: 姓 名: 班 级: 学 号: 日 期: 1 目录1、Ping 功能简介 1 2、程序流程图(1)主函数流程图 3(2)创建套接字流程图 3(3)建立 IP 选项头部流程图 4(4)创建 SockRaw 套接字的接收/发送时限属性流程图4(5)判断终端的主机名获取信息流程图 5(6)分配堆内存流程图 5(7)接收/发送 ICMP 数据包流程图 6(8)清空 Socket 库所占内存 7 (9)传参解析函数流程图 7(10)解析 IP 选项函数流程图 83、源代码清单 84、心得体会 16 2 1、ping 功能简介Ping 是 DOS 命 令

2、 , 一 般 用 于 检 测 网 络 通 与 不 通 , 也 叫 时 延 , 其 值越 大 , 速 度 越 慢PING (Packet Internet Grope), 因 特 网 包 探 索 器 , 用 于 测 试 网 络连 接 量 的 程 序 。 Ping 发 送 一 个 ICMP 回 声 请 求 消 息 给 目 的 地 并 报 告 是 否收 到 所 希 望 的 ICMP 回 声 应 答 。 它 是 用 来 检 查 网 络 是 否 通 畅 或 者 网 络 连 接 速 度 的 命 令 。 作 为 一 个 生活 在 网 络 上 的 管 理 员 或 者 黑 客 来 说 , ping 命 令 是

3、第 一 个 必 须 掌 握 的DOS 命 令 , 它 所 利 用 的 原 理 是 这 样 的 : 网 络 上 的 机 器 都 有 唯 一 确 定 的IP 地 址 , 我 们 给 目 标 IP 地 址 发 送 一 个 数 据 包 , 对 方 就 要 返 回 一 个 同 样大 小 的 数 据 包 , 根 据 返 回 的 数 据 包 我 们 可 以 确 定 目 标 主 机 的 存 在 , 可 以初 步 判 断 目 标 主 机 的 操 作 系 统 等 。Ping 是 Windows 系 列 自 带 的 一 个 可 执 行 命 令 。 利 用 它 可 以 检 查 网络 是 否 能 够 连 通 , 用 好

4、 它 可 以 很 好 地 帮 助 我 们 分 析 判 定 网 络 故 障 。 应 用格 式 : Ping IP 地 址 。 该 命 令 还 可 以 加 许 多 参 数 使 用 , 具 体 是 键 入Ping 按 回 车 即 可 看 到 详 细 说 明 。ping 指 的 是 端 对 端 连 通 , 通 常 用 来 作 为 可 用 性 的 检 查 , 但 是 某 些 病 毒 木 马 会 强 行 大 量 远 程 执 行 ping 命 令 抢 占 你 的 网 络 资源 , 导 致 系 统 变 慢 , 网 速 变 慢 。2、程序流程图 3 图 1 main 函 数 流 程 图图 2 创 建 套 接 字

5、 流 程 图请求版本信息,创建一个套接口建立 IP 选项首部创建 SockRaw 套接字的接收/发送时限属性失败 成功退出 main 函数,并返回一个值-1 调用 memset 函数 判断终端的主机名获取信息创建 ICMP 数据包,分配堆内存接收/发送 ICMP 数据包清空 Socket 库所占内存调用 WSAStartup()函数请求版本信息判断其返回值返回值为 0,即执行 返回值为非 0,即执行失败 成功退出 main 函数,并返回一个值 2 调用传参解析函数 用 socket 函数创建一个套接口,设置属性创建失败 创建成功 退出 main 函数,并返回一个值 3 进入 main 函数步骤

6、 4 图 3 建 立 IP 选 项 头 部 流 程 图图 4 创 建 SockRaw 套 接 字 的 接 收 /发 送 时 限 属 性 流 程 图bRecordRouteTRUE FALSE调用 setsockopt()函数,并判断其返回值返回值为 返回值为一个 进入 main 函数步骤SOCKET_ERROR IP_OPTIONS 的属性获得当前错误的进程号, 进入 main 函数步骤并输出错误信息调用 setsockopt()函数设置套接字接收时限属性,判断其返回值设置失败 设置成功 取得错误的进程号,输出错误信息 timeout=1000;退出 main 函数调用 setsockopt(

7、)函数设置套接字发送时限属性,判断其返回值设置失败 设置成功取得错误的进程号,输出错误信息 调用 memset()函数填充数据段退出 main 函数 5 图 5 判 断 终 端 的 主 机 名 获 取 信 息 流 程 图图 6 分 配 堆 内 存 流 程 图将点分十进制地址转化为二进制地址将该地址赋给 dest.sin_addr.s_addr无效地址 判断其值 有效地址通过主机名获取主机信息为 NULL 不是 NULL取得错误的进程号,输出错误信息, 输出主机信息 退出 main 函数进入 main 函数步骤利用 HeapAlloc()分配堆内存函数 分配成功 分配失败调用 memset()函

8、数填充数据段 输出堆内存分配失败 推出主函数 调用 ICMP 首部初始化函数 返回值-1 6 图 7 接 收 /发 送 ICMP 数 据 包 流 程 图nCount=0nCount+nCount+=4break调用 cksum发送 ICMP 数据包失败 成功超时 bwrote i_type = ICMP_ECHO; /ICMP 回显请求icmp_hdr-i_code = 0;icmp_hdr-i_id = (USHORT)GetCurrentProcessId();/取得当前进程号icmp_hdr-i_cksum = 0; /检验和字段置 0icmp_hdr-i_seq = 0; datapa

9、rt = icmp_data + sizeof(IcmpHeader); /datapart 指针指向数据报文开头memset(datapart, E, datasize - sizeof(IcmpHeader); /填充数据段/计算检验和USHORT checksum(USHORT *buffer, int size)unsigned long cksum = 0; / 检验和字段置 0while (size 1)cksum += *buffer+;size -= sizeof(USHORT);if (size)cksum += *(UCHAR*)buffer;cksum = (cksum

10、16) + (cksum /将检验和字段高 16 位右移 16 位再与低 16 位相加cksum += (cksum 16);/将所加的检验和再与剩余低 16 位相加return (USHORT)(cksum);/检验和取反,并返回 11 /解析 IP 选项void DecodeIPOptions(char *buf, int bytes)IpOptionHeader *ipopt = NULL;IN_ADDR inaddr; /声明结构体int i;HOSTENT *host = NULL;ipopt = (IpOptionHeader *)(buf + 20); /去掉 IP 首部,指针指

11、向数据选项首部printf(RR: );for(i = 0; i ptr / 4) - 1; i+)inaddr.S_un.S_addr = ipopt-addri;if (i != 0)printf( );host = gethostbyaddr(char *)/通过 IP 地址获得主机信息if (host)printf(%-15s) %sn, inet_ntoa(inaddr), host-h_name);/打印 IP 地址和主机名elseprintf(%-15s)n, inet_ntoa(inaddr); /打印 IP 地址return;/解析 ICMP 首部函数void DecodeI

12、CMPHeader(char *buf, int bytes, struct sockaddr_in *from)IpHeader *iphdr = NULL;IcmpHeader *icmphdr = NULL;unsigned short iphdrlen;DWORD tick; /毫秒级数static int icmpcount = 0;iphdr = (IpHeader *)buf;iphdrlen = iphdr-h_len * 4; /IP 首部实际长度tick = GetTickCount();/获得毫秒级数if (iphdrlen = MAX_IP_HDR_SIZE) & (!icmpcount) /判断是否为一个 IP 数据包 12 DecodeIPOptions(buf, bytes); /调用 IP 选项解析函数if (bytes sin_addr);icmphdr = (IcmpHeader*)(buf + iphdrlen); /指针指

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号