网络状态测试程序(基于ping命令)

网络状态测试程序(基于ping命令)

需求分析

  1. 在linux下实现一个获取两台设备网络连通性的程序
  2. 执行速度尽可能的快

概要设计

  1. 网络连通性测试
  2. 网络丢包率测试

详细设计

  1. 网络连通性
    为了减少不必要的时间浪费,在测试网络丢包率前进行连通性测试。测试方法就是先使用ping命令ping少量的包数,如果全部失败,则认为网络不通。
  2. 网络丢包率测试
    使用ping命令进行较大包数的测试,统计丢包率。

代码

  1. 核心思路
    在程序中使用system()函数调用ping命令,返回0代表网络测试成功,非0测试失败。其中-c指定ping包次数,这里为1。
#incldue <stdlib.h>
status=system("ping -c 1 xxx.xxx.xxx.xxx");
  1. 编程实现
#include <stdio.h>
#include <stdlib.h>

#define MAX_TEST 1000
#define MAX_ASK 10
#define MAX_CMD_LEN 50

int 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;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简介 ******是技术有限公司的独立版权的自主开发软件。它是针对中小型规模的异构网络环境下的企事业、学校而专业设计的一套高性能、高可靠性的计算机网络系统管理软件。 ******可实现从桌面、工作站、大型主机的不同层次的一体化管理。管理的范围包括应用程序、数据库、网络、系统和互连网等五个方面。它采用了业界流行的分布式对象环境下两大主流技术: 公共对象请求代理体系结构CORBA和分布式组件对象模型DCOM;完全遵从简单网络管理协议SNMP, 远程监控RMONv1/RMONv2,支持数十种管理信息库MIB;应用了代理技术,充分实现了工作站平台和WINTEL平台下操作系统的数十项指标实时监控;整合了网络安全的密码技术和认证技术,应用非对称密钥系统和身份验证手段来保证系统的安全性和完整性。 拓扑管理 1. 实现A、B、C类网络拓扑自动搜索,子网搜索; 2. 网络—子网两级网络拓扑结构图显示; 3. 子网、网络设备的工作状态实时监控; 4. 子网、网络设备的属性浏览; 5. 基于规则的子网、网络设备的快速定位; 6. 硬件故障的检测、定位和基本诊断等。   事件分析 1. 实现主控台的所有操作事件的实时浏览和分析,并运用各种图表显示统计结果; 2. 实现事件报告的按规则查询,排序,存储和打印等功能。 性能统计 1. 实时动态流量性能统计和2D、3D显示; 2. 网络健康性能及QOS指标实时显示。 系统安全 1. 实现系统管理员用户的权限、职责管理;实现用户的增加、修改、删除和查询,及用户权限的增加、 修改、删除与查询; 2. 实现重要数据库的自动备份、自动恢复; 3. 对对象数据库中数据进行加密和解密。 软件分发 1. 完成软件从同一源分发到多个目标机的自动安装; 2. 实现分发软件包的自动备份、重复安装; 3. 实现目标机上分发软件的自动卸载。 病毒扫描 1. 实现在端系统上自动启动杀毒软件进行病毒检测及清除; 2. 实现主控台对各端系统杀毒情况的监控; 3. 实现端系统杀毒软件定时启动功能。 资产管理 1. 显示分布式网络环境中的网络互连设备资源列表,并实现对网络互连设备各种资源信息的实时查询浏览; 2. 显示UNIX、WINTEL平台端系统的硬件和软件各种资源列表; 3. 在一定范围内,对端系统的各种硬件资源实现基于规则的查找、排序和统计; 4. 在一定范围内,对端系统的各种软件资源实现基于规则的查找、排序和统计。 网络配置 1. 网络基本信息配置 2. 网络资源的门限设置 3. Mail等其它信息设置 常用工具 1. MIB库查询工具 2. IP区间搜索工具 3. 远程访问工具(集成原操作系统工具) 4. 文件传输工具(集成原操作系统工具) 5. Ping测试 华软网_源码中心提供 [url]http://www.huarw.com[/url] 网络服务设计文件 目 录 1 范围 1 1.1 标识 1 1.2 概述 1 1.3 文档概述 1 1.4 文挡待完善处说明 1 2 ARKOVIEW 拓扑服务模块设计 2 3 拓扑服务类图设计 6 3.1 DCOM子模块类图设计 6 3.2 SNMP控制台类图设计 7 3.3 SOCKET通信子模块 8 3.4 数据格式管理类图设计 9 3.5 监控子模块类图设计……………………………………………………………………...9 3.6 数据库操作子模块类图设计…………………………………………………………….10 3.7 事件调用子模块类图设计……………………………………………………………….10 4 拓扑服务事件流设计 11 4.1 用户请求事件 11 4.2 TRAP 事件 11 4.3 定时事件 11 5 服务中的接口函数……………………………………………………………………………….12 5.1 接口中用到的数据结构及特殊变量含义定义…………………………………...…….12 5.2 UCSNMPCONTROL 支持的基本函数…………………………………………………...14 5.3 接口函数………………………………………………………………………………….15 6 监控模块设计…………………………………………………………………………………….22 6.1、WATCHTAB & SAMPLETAB……………………………………………………………..22 6.2与监控有关的数据结构………………………………………………………………………...22 6.3监控模块

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值