网络状态测试程序(基于ping命令)
网络状态测试程序(基于ping命令)
需求分析
- 在linux下实现一个获取两台设备网络连通性的程序
- 执行速度尽可能的快
概要设计
- 网络连通性测试
- 网络丢包率测试
详细设计
- 网络连通性
为了减少不必要的时间浪费,在测试网络丢包率前进行连通性测试。测试方法就是先使用ping命令ping少量的包数,如果全部失败,则认为网络不通。 - 网络丢包率测试
使用ping命令进行较大包数的测试,统计丢包率。
代码
- 核心思路
在程序中使用system()函数调用ping命令,返回0代表网络测试成功,非0测试失败。其中-c指定ping包次数,这里为1。
#incldue <stdlib.h>
status=system("ping -c 1 xxx.xxx.xxx.xxx");
- 编程实现
#include <stdio.h>
#include <stdlib.h>#define MAX_TEST 1000
#define MAX_ASK 10
#define MAX_CMD_LEN 50int network_ping(char *ip)
{int status;char cmd[MAX_CMD_LEN];sprintf(cmd,"ping -c 1 %s > /dev/null",ip);status=system(cmd); if(status==0) return 1;return 0;
}int network_is_reachable(char *ip)
{int status;char cmd[MAX_CMD_LEN];sprintf(cmd,"ping -c 1 %s > /dev/null",ip);int i;for(i=0;i<MAX_ASK;i++){status=system(cmd);if(status==0) break;}if(i>=MAX_ASK){return 0;}return 1;
}double network_loss_rate(char *ip)
{if(!network_is_reachable(ip)) return 1.00;int lost=0;int reached=0; int i;for(i=0;i<MAX_TEST;i++){if(network_ping(ip)) reached++;else lost++;}double result=lost*1.0/MAX_TEST;return result;
}int main()
{char ip[]="192.168.1.8";double loss_rate=network_loss_rate(ip);printf("丢包率%.2f%%\n",loss_rate*100);return 0;
}
网络状态测试程序(基于ping命令)相关推荐
- 基于PING命令的主机探测
今天继续给大家介绍渗透测试相关知识,本文主要内容是基于PING命令的主机探测. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 一.ping与t ...
- 25、网络必备知识:Ping命令的7个基础用法,掌握了贼厉害
系统. 当然,我们今天主要了解并不是这些,而是ping的其它参考. ping命令除了直接ping网络的ip地址,验证网络畅通和速度之外,它还有这些用法. 二.ping -t的使用 不间断地Ping指定 ...
- 网络-ICMP协议、Ping命令实现与ICMP攻击
目录 简介 报文格式 差错报文 常见类型 不发送ICMP差错报文的情况 询问报文 常见类型 实战 简单Ping命令实现 抓包 手算校验和 全部代码 Traceroute 抓包 ICMP重定向攻击 原理 ...
- 必备的网络常用测试命令(ping命令)
ping(Packet InterNet Groper分组因特网探测器) 它是一个可以检查两个主机之间连通性的DOS命令,利用网络上机器IP地址的唯一性,给目标IP地址发送一个ICMP ...
- 网络不通使用的PING命令是用的什么协议?
几乎每一名网工及弱电工程师都遇到过网络不通的情况,通常判断标准是以外网连通性及Ping测试得出结果,而ping属于ICMP协议中的一个工具.今天讲一下ICMP个协议.文末为本周福利.兄弟们记得看完哦. ...
- 网络状态诊断工具——netstat命令
netstat命令可以用来查询整个系统的网络状态.百度百科的定义如下: Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进 ...
- 基于python的 ping 网络状态监测方法 亲测有效
ping 基本概念 ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序 [1] .Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令 ...
- ping命令一直测试网络丢包原因及处理解决方法
所谓的网络丢包是我们在使用ping对目站进行询问时,数据包由于各种原因在信道中丢失的现象.ping 使用了ICMP 回送请求与回送回答报文.ICMP 回送请求报文是主机或路由器向一个特定的目的主机发出 ...
- 使用ping命令定位网络延迟问题
一.背景 使用ping命令发现局域网内延迟大,且变化较大.需要分析耗时在那一层. 二.分析 上图可以看出,本机ping延时非常低.在本机网络 IO 的过程中,流程会有一些差别.有差异的地方总共有两个, ...
最新文章
- OpenCV中MeanShift算法视频移动对象分析
- windows环境下,django + mongoengine + mongodb环境配置
- 要引爆用户增长?抵制“诱惑”更健康
- 1313 质因数分解 2012年NOIP全国联赛普及组
- leetcode python3 简单题100. Same Tree
- LINUX多路IO技术 SELECT VS POLL VS EPOLL
- html在线预览wordexcel文档,直接在线预览Word、Excel、TXT文件之ASP.NET
- Altium Designer入门教程:软件安装、中文设置与原件库配置
- 频响测试软件的使用教程,频谱分析仪的使用方法与技巧
- 美学心得(第二百四十一集) 罗国正
- python floor函数_Python floor() 函数 - Python 教程 - 自强学堂
- SHELL脚本获取某天的上一周日期(星期一为第一天)
- 能转PDF格式用的在线软件
- 复制html代码怎么粘贴快捷键,电脑复制粘贴快捷键,教您电脑怎么用键盘复制粘贴...
- Excel之match index 和vlookup函数 和双条件查找匹配
- host文件位置 修改ip映射地址
- kafka的topic,broker,partition之间的关系
- python实现直方图、条形图、折线图、饼图(参数详情)
- 小米电视访问电脑共享文件夹
- ESC/POS 指令集和打印机开发