- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ping程序分析报告
ping程序分析报告
课程名称:
老 师:
姓 名:
班 级:
学 号:
日 期:
目录
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选项函数流程图 ……………………………………8
3、源代码清单 ……………………………………………………8
4、心得体会 ………………………………………………………16
1、ping功能简介
Ping 是DOS命令,一般用于检测网络通与不通 ,也叫时延,其值越大,速度越慢
PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。
Ping 是Windows系列自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式:Ping IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。
ping指的是端对端连通,通常用来作为可用性的检查,
但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。// Module Name: Ping.c
#include "windows.h"
#include "winsock.h"
#include "stdio.h"
#define IP_RECORD_ROUTE 0x7 //IP记录路由
#define ICMP_ECHO 8 //ICMP回显
#define ICMP_ECHOREPLY 0 //ICMP回显应答
#define ICMP_MIN 8 //ICMP数据包最小长度
#define DEF_PACKET_SIZE 32 //差错报文长度
#define MAX_PACKET 0x10000 // ICMP包最大长度
#define MAX_IP_HDR_SIZE 60 //IP首部最大字节数
//IP头文件定义
typedef struct _iphdr
{
unsigned int h_len:4; //头部长度 4字节
unsigned int version:4; //IP版本号 IPv4
unsigned char tos; //服务类型
unsigned short total_len; //数据包总长度
unsigned short ident; //ID标识
unsigned short frag_and_flags; //3位标志,13位片偏移
unsigned char ttl; //生存期
unsigned char proto; //协议类型
unsigned short checksum; //IP头部的检验和
unsigned int sourceIP; //源地址
unsigned int destIP; //目的地址
} IpHeader;
//ICMP头部定义
typedef struct _icmphdr
{
文档评论(0)