GuiPing图形化网络测试

6 篇文章 0 订阅
4 篇文章 0 订阅

 

 

 

 

GuiPing帮助

 

 

1. 关于GuiPing工具

虽然在Windows平台下有着非常方便的命令行Ping测试工具,但也有着它的局限性,如:

(1)进行连续ping时无法查看最大值、最小值、平均值等参数;

(2)不具有图表功能,无法分析某段较长时间内的网络稳定性;

所以作者根据一些特定的需求,以易用性为主,设计了此免费的图形化软件,其特点如下:

(1)GuiPing是一款免费的图形化Ping网络测试工具;

(2)GuiPing有着简洁的仿真操作界面、直观的数据显示、集多种网络工具;

2. 系统需求


软件需求:

操作系统:Microsoft Windows XP/2003/Vista/2008/7/8/10/2012 32位/64位

平台支持:Microsoft .NET Framework 3.5

硬件需求:

处理器:Intel Dual Core 双核或其他核心处理器 (同等性能的AMD处理器)

内    存:1GB以上内存

硬    盘:1GB以上可用空间

网    卡:10/100/1000Mbps网卡

 

3. 版权


软件名称:GUIPing

软件版本:V1.0.0.1

版权:2012-2020 © 宋晓

许可:免费软件,可自由复制传播。

4. 帮助

4.1 运行软件



一、Windows桌面方式

“Windows桌面方式”是指用户通过操作Windows操作系统桌面上的GUIPing图标。

 

二、命令行方式

“命令行方式”是指用户通过Windows操作系统的“命令提示符”工具,使用参数调用GuiPing工具。

4.2 命令行参数


1、命令行格式约定

[...]表示此括号内的参数为可选参数,您可以输入,也可以不输入;

<...>表示此括号内的参数为必选参数,您必须输入;

[A|B] 表示此括号的参数为可选参数,在A或者B之间选择其一;

 

2、指令格式

GuiPing [Domain/IP] [DelayTimeMs] [True|False] [Show|Hide]

 

3、参数含义

[Domain/IP] :要通过Ping测试的域名(不包括http://和www)或IP地址,如:baidu.com、192.168.1.1

[DelayTimeMs]:在进行Ping测试时,两次Ping指令间的延迟时间(忽略此参数时默认为1000),单位为毫秒,如:100

[True|False] :在测试时是否使用E-MAIL电子邮件报告,为True时,在条件满足时,将使用指定的邮件发送报告。注:此参数的详细设置见本帮助文档的“电子邮件”一栏

[Show|Hide]:在开始进行Ping测试后是否显示或隐藏界面,为Hide时,将自动隐藏界面,并缩小到操作系统左下角的Notify托盘区域

 

4、注意事项

GuiPing的四个参数必须从第一个开始定义,不可间隔定义;即如果使用第二个参数,则必须给定第一个参数;如果使用第三个参数,则必须给定第一、二个参数;以此类推

当GuiPing没有给定任何参数时,GuiPing会弹出参数定义对话框供用户设定参数

 

5、使用示例

要测试baidu.com,两次Ping之间间隔100毫秒,不适用邮件报告,最小化界面,则命令行如下:

GuiPing baidu.com 100,false,hide

 

4.3 输入参数


通过“Windows桌面方式”运行GuiPing或者在使用“命令行方式”方式运行GuiPing时未给定任何参数时将弹出以上界面。

用户需输入和选择相应参数后点击“开始”按钮开始一次Ping测试。

关于以上界面中的参数,请参见本说明文档的“命令行参数”一栏。

 

4.4 主界面组成


开始测试后,软件将显示如上图的主界面,其组成如上图:

1、测试结果显示区:包括Ping测试中的最大值、最小值、平均值、共测试次数、测试时失败次数、Ping测试的目标地址(域名及IP)、当前一次测试的ICMP响应时间、测通率

2、使用内置浏览器访问该目标地址

3、通过http://whois.alexa.cn查询该域名的注册信息

4、清空计数器,此时将重新开始计算最大值、最小值、平均值、计数器、丢失数等参数

5、通过Baidu.com查看该IP的位置

6、更多功能,点此弹出快捷菜单选择更多功能

7、退出本次测试并关闭软件

4.5 最小化与恢复GuiPing


某些时候当用户希望继续进行GuiPing测试,但又不希望显示主界面,则可以通过“最小化”功能隐藏主界面,具体操作如下:

双击操作系统左下角Notify托盘区域的GuiPing图表即可在“显示”或“隐藏”主界面之间切换。

4.6 新建一个新的GUIPing测试


在正在进行的一次GuiPing测试过程中希望进行一次新的GuiPing测试,则可通过鼠标单击主界面的“更多功能”按钮,弹出快捷菜单中选择“新建”命令,或直接按下键盘上的Ctrl+N来创建一次新的GUIPing测试。

4.7 示波器显示


示波器显示将以图形化方式显示Ping测试在一段时间内的网络状况,以便于更直观的发现问题。

要显示示波器界面,可通过鼠标单击主界面的“更多功能”按钮,在弹出的快捷菜单中选择“示波器”菜单项,或直接按键盘上的F1按钮显示或隐藏示波器界面。

4.8 声音


在传统Ping测试时我们只能通过盯着屏幕来判断到目标地址的通断状况,而有时候我们可能需要其他的感知方式,如声音提示。

声音功能提供两种模式来确认Ping测试到目标地址的通断状况。

(1)心跳提示

心跳提示是指在进行一次Ping测试时,目标地址返回一次报文,则发出一次声音提示,类似于人们在做心跳监测时发出的声音提示。

 

(2)死亡提示

死亡提示是指在进行一次Ping测试时,目标地址没有返回报文,则发出一次声音提示,类似人们在做心跳监测时,监测设备无法监测心跳而发出的声音提示。

4.9 电子邮件


在传统Ping测试时,我们必须经盯着屏幕,来观察网络通断状况;在某些网络测试诊断场景中,我们可能需要离开测试地点,此时传统Ping已无法满足我们的需求;

使用电子邮件来按规则向我们报告网络的诊断状况无疑是最佳的选择方式。

GUIPing提供了用户在指定条件下通过给定的邮箱向指定的邮箱发送报告的功能。

 

(1)如何设置电子邮件参数

在主界面通过鼠标点击“更多功能”按钮,在弹出的快捷菜单中选择“电子邮件”菜单项,系统会弹出电子邮件参数对话框.

 

(2)设置服务器参数

在“电子邮件”对话框中的“服务器设置”页面中输入用以发送报告的电子邮件服务提供商提供的SMTP服务器地址及SMTP端口,如网易163邮箱提供的SMTP服务器地址为smtp.163.com,其端口号为25。

如希望使用安全连接,则勾选“是否启用SSL”选项。***需要注意的是:启用此选项后SMTP服务器端口参数也需要改变,具体参数请查看对应邮箱帮助给出的参数值***

 

(3)账户设置

在“电子邮件”对话框中的“账户设置”页面中输入用以发送报告的电子邮件的邮件账户全称、密码。

 

(4)报告设置

在“电子邮件”对话框中的“报告设置”页面中输入用以接收报告的电子邮箱地址,报告中的签名,触发发送一次报告的方式。

触发报告的方式包括:通时报告、断时报告、定期报告三类,一般我们仅适用“定期报告”;

通时报告:类似于声音功能中的心跳提示,是指Ping测试目标地址返回一次数据包时发送邮件。

断时报告:类似于声音功能中的死亡提示,是指Ping测试目标地址没有返回数据包时发送邮件。

注意:适用“通时报告”、“断时报告”可能会导致循环发送邮件报告,所以只有在特定情况下适用。

定期报告:是指当连续经过N次测试后发送一次电子邮件。

 

(5)启用电子邮件报告服务

在经过以上设置后,只有勾选“启用电子邮件报告服务”选项后,GuiPing才会在满足触发条件时发送一次报告。

 

注意:不论是否启用服务,要保存以上设定的参数,都必须点击“应用”按钮以保存参数。

4.10 快速切换IP地址


很多时候我们需要在这种物理上关联但逻辑上独立的网络环境下进行Ping测试,对于不同网段间的测试,我们需要不断的来回切换IP地址;而在Windows操作系统中手动切换IP地址的步骤复杂而繁琐。

所以,GUIPing工具提供了快速配置网络适配器IP地址的解决方案。我们可在已经存入的多个解决方案中快速切换IP设置。

(1)如何调用IP切换窗口

在主界面通过鼠标点击“更多功能”按钮,在弹出的快捷菜单中选择“辅助工具”菜单项或按下键盘上的F2快捷键,系统会弹出更多功能对话框.

 

(2)增加方案

在“辅助工具”窗口下的“快速应用”界面,选择IP地址的设定方式;如需要DHCP服务器自动分配,则选择“自动获取IP”项;如需要手动设置IP地址,则选择“手动设置IP”项;

在选择“手动设置IP”项后,需要输入相应的IPv4网络参数,如下图:

设置完成后,点击“存入”按钮,在弹出的“保存方案”对话框中输入“方案名称”后点击“确定”按钮即可保存方案。

(3)删除方案

在“辅助工具”窗口下的“快速应用”界面左侧列表中选择要删除的方案名称,再点击“删除”按钮,在提示的对话框中选择“是”后即可删除。

 

(4)应用方案

在“辅助工具”窗口下的“快速应用”界面右侧“适配器”一栏中选择要修改IP的网络适配器名称,并在左侧方案列表中单击要切换的方案,再点击下方的“应用”按钮,即可切换相应网卡的IP地址。

 

***特别注意:GUIPing不会对用户输入的网络参数进行完整性检查,请确保输入的参数格式正确,无法应用方案,请检查后再试。***

 

4.11 网段测试


网段测试多应用于需要在一段连续的IP地址中测试是否有可联通的设备。

在“辅助工具”窗口下的“区段扫描”界面中输入要测试网段的段地址,及测试区间后点击“扫描”后,GuiPing会依次开始进行Ping测试,并将可联通的设备IP列入下方的列表中。

提示:双击列表中的IP地址,可快速新建一个针对此IP进行的GUIPing测试。

4.12 ARP表


ARP表示在进行一次“网段测试”后自动更新的,该功能是Windows提供的命令行工具arp -a的一个图形化应用。

4.13 无线网络


在进行网络测试时,除了要在多个有线网络间切换,还可能会在多个无线网络间切换,所以GuiPing工具同样支持在多个Wifi网络之间快速切换。

在“辅助工具”窗口下的“无线网络”界面中无线网络名称被归类为“已保存”和“未连接”两组,在“已保存”中列出的无线网络是用户在此计算机上已经连接过的Wifi网络,而“未连接”中列出的网络是其他当前可搜索但从未连接过的网络。

(1)连接到一个WIFI网络

双击列表中的一行可以连接到对应的网络,如果这个WIFI分类在“已保存”组中,则自动切换;如果该WIFI分类在“未连接”组中,则提示用户输入密码。

***注意:此工具不会验证输入的WIFI秘钥是否正确,如果您无法连接到该网络,则可能您输入的秘钥不正确,请在忘记网络后重试***

(2)忘记网络

当我们需要在系统中删除一个WIFI网络配置时,只需选中对应的连接名称,然后点击忘记网络即可。

 

(3)忘记所哟

当我们期望将当前计算机中的所有WIFI网络配置信息删除,则点击“忘记所有”按钮清空。

 

4.14 启用或禁用网络适配器


当我们的计算机有多个网络适配器,并需要在不同的适配器之间切换,这是非常繁琐的任务。

GuiPing为用户提供快速的网络适配器启用禁用解决方案,方便在多网卡之间快速切换。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个可能的实现,使用了数组存储寝室信息,并将数据存储到文件中。每个功能都有对应的菜单选项。 ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_ROOMS 100 // 最大寝室数量 #define MAX_STUDENTS 1000 // 最大学生数量 // 寝室信息结构体 struct room { int building; // 楼号 int number; // 寝室号 char type; // 类别,'M'代表男寝室,'F'代表女寝室 int capacity; // 床位数 int occupied; // 已占用床位数 }; // 学生信息结构体 struct student { char id[20]; // 学号 char gender; // 性别,'M'代表男,'F'代表女 int room; // 分配的寝室号 }; // 全局变量 struct room rooms[MAX_ROOMS]; // 所有寝室信息 int num_rooms = 0; // 寝室数量 struct student students[MAX_STUDENTS]; // 所有学生信息 int num_students = 0; // 学生数量 // 将寝室信息保存到文件中 void save_rooms() { FILE *file = fopen("rooms.txt", "w"); if (file == NULL) { printf("无法打开文件 rooms.txt\n"); return; } fprintf(file, "%d\n", num_rooms); for (int i = 0; i < num_rooms; i++) { fprintf(file, "%d %d %c %d %d\n", rooms[i].building, rooms[i].number, rooms[i].type, rooms[i].capacity, rooms[i].occupied); } fclose(file); printf("寝室信息已保存到文件 rooms.txt 中\n"); } // 从文件中读取寝室信息 void load_rooms() { FILE *file = fopen("rooms.txt", "r"); if (file == NULL) { printf("无法打开文件 rooms.txt\n"); return; } fscanf(file, "%d", &num_rooms); for (int i = 0; i < num_rooms; i++) { fscanf(file, "%d %d %c %d %d", &rooms[i].building, &rooms[i].number, &rooms[i].type, &rooms[i].capacity, &rooms[i].occupied); } fclose(file); printf("从文件 rooms.txt 中读取了 %d 个寝室信息\n", num_rooms); } // 添加一个新的寝室 void add_room() { if (num_rooms >= MAX_ROOMS) { printf("寝室数量已达到上限,无法添加新的寝室\n"); return; } printf("请输入新寝室的信息(楼号 寝室号 类别(M/F)床位数):"); scanf("%d %d %c %d", &rooms[num_rooms].building, &rooms[num_rooms].number, &rooms[num_rooms].type, &rooms[num_rooms].capacity); rooms[num_rooms].occupied = 0; num_rooms++; printf("新寝室已添加\n"); } // 显示所有寝室信息 void list_rooms() { printf("当前共有 %d 个寝室:\n", num_rooms); printf("楼号 寝室号 类别 床位数 已占用床位数\n"); for (int i = 0; i < num_rooms; i++) { printf("%-4d %-4d %-4c %-4d %-4d\n", rooms[i].building, rooms[i].number, rooms[i].type, rooms[i].capacity, rooms[i].occupied); } } // 分配寝室给一个新学生 void assign_room() { if (num_students >= MAX_STUDENTS) { printf("学生数量已达到上限,无法再分配寝室\n"); return; } printf("请输入新学生的信息(学号 性别(M/F)):"); scanf("%s %c", students[num_students].id, &students[num_students].gender); for (int i = 0; i < num_rooms; i++) { if (rooms[i].type == students[num_students].gender && rooms[i].occupied < rooms[i].capacity) { students[num_students].room = rooms[i].number; rooms[i].occupied++; printf("已将学生分配到寝室 %d\n", rooms[i].number); num_students++; save_rooms(); // 每次分配完寝室后都保存一次寝室信息 return; } } printf("没有可用的寝室,请联系管理员添加新的寝室\n"); } // 修改寝室信息 void modify_room() { int room_number; printf("请输入要修改的寝室号:"); scanf("%d", &room_number); for (int i = 0; i < num_rooms; i++) { if (rooms[i].number == room_number) { printf("请输入新的寝室信息(楼号 寝室号 类别(M/F)床位数):"); scanf("%d %d %c %d", &rooms[i].building, &rooms[i].number, &rooms[i].type, &rooms[i].capacity); printf("寝室信息已修改\n"); save_rooms(); return; } } printf("找不到该寝室,请检查输入是否正确\n"); } // 删除寝室信息 void delete_room() { int room_number; printf("请输入要删除的寝室号:"); scanf("%d", &room_number); for (int i = 0; i < num_rooms; i++) { if (rooms[i].number == room_number) { // 将该寝室后面的所有寝室向前移动一个位置 for (int j = i + 1; j < num_rooms; j++) { rooms[j-1] = rooms[j]; } num_rooms--; printf("寝室信息已删除\n"); save_rooms(); return; } } printf("找不到该寝室,请检查输入是否正确\n"); } // 主菜单 void main_menu() { while (1) { printf("\n请选择要进行的操作:\n"); printf("1. 添加新的寝室信息\n"); printf("2. 显示所有寝室信息\n"); printf("3. 分配寝室给一个新学生\n"); printf("4. 修改寝室信息\n"); printf("5. 删除寝室信息\n"); printf("0. 退出程序\n"); int choice; scanf("%d", &choice); switch (choice) { case 1: add_room(); break; case 2: list_rooms(); break; case 3: assign_room(); break; case 4: modify_room(); break; case 5: delete_room(); break; case 0: printf("程序已退出\n"); return; default: printf("无效的选择,请重新输入\n"); } } } int main() { load_rooms(); // 程序启动时从文件中读取寝室信息 main_menu(); // 进入主菜单 return 0; } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值