如果你想获取到Ping的结果那么直接system 调用ping或者popen调用即可。 如果想自己实现,就需要用socket自行发Ping包,并获取回应这个就很麻烦了。 建议可以看一下gnu ping的源码,或者busybox的ping部分代码 亲亲 您的图我这边看起来太模糊了呢
ping说白了,就是测试网络是否通畅的命令。白话说,就是发个数据包,到目的地址,看对方是否回应,回应的时间是多少ms等。向指定的IP地址发送一定长度的数据包,按照约定,若指定IP地址存在的话,会返回同样大小的数据包,当然,若在特定的时间内没有返回,就是“超时”,就认为指定的IP地址不存在。就...
1、通过Ping检测网络故障的典型次序 正常情况下,当我们使用Ping命令来查找问题所在或检验网络运行情况时,我们需要使用许多Ping命令,如果所有都运行正确,我们就可以相信基本的连通性和配置参数没有问题;如果某些Ping命令出现运行故障,它也可以指明到何处去查找问题。下面就给出一个典型的检测次序及对应的...
int system(const char * string); 函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。 返回值 如果fork()失败 返回-1:出现错误 ...
可见1.1.1.1 ping不通, 其余的可以ping通。 上面用awk和system有个问题:如果ip过多, 则必须等到所有ip检测完毕后, 才知道最后的结果。 也就是说, 并不是处理完一个ip后, 就立即能看到结果的。怎么办呢?可以写程序逐行读取文件来搞起, 看下: #include <iostream> ...
std::cout<<"Usage : ping ip/host"<<endl; 62 cin>>a; 63 exit(0); 64 } 65 if(WSAStartup(MAKEWORD(2,1),&wsa)!=0){ 66 std::cout<<"Error when Initialize the socket"<<endl; 67 system("pause"); 68 exit(0); 69 } 70 ...
include <stdlib.h>int main(void) { char cmd_buf[100]; system("ping 192.168.1.1"); /*仅为示范调用,具体情况具体对待*/ sprintf(cmd_buf, "ping %d.%d.%d.%d", 192, 168, 1, 1); system(cmd_buf); /*ping 192.168.1.1*/ return 0;} LinuxC里面...
-system-time 显示报文发送时的系统时间。 - -ttimeout 指定发送完ICMP ECHO-REQUEST后,等待ICMP ECHO-REPLY的超时时间。 ping命令会发送ICMP ECHO-REQUEST报文到某个地址,然后等待应答(reply),当ICMP ECHO-REQUEST报文到达目标地址以后,在一个有效的时间内(timeout之前)返回ICMP ECHO-REPLY给源地址,则说明目的地可...
一、方式1: system #include <stdlib.h> system("ping 127.0.0.1"); 阻塞等待程序执行完再退出. 二、方式2: WinExec #include<windows.h> #include<shellapi.h> #include<stdio.h> #include<string.h> WinExec("ping 127.0.0.1", SW_SHOWNOACTIVATE); 调用完立即返回。三、方式3: CreateProcess #includ...
<Huawei>system-view[Huawei]sysname PE1[PE1]interface loopback 1[PE1-LoopBack1]ip address 1.1.1.9 32[PE1-LoopBack1]quit[PE1]interfacegigabitethernet1/0/0[PE1-GigabitEthernet1/0/0]ip address 172.1.1.2 24[PE1-GigabitEthernet1/0/0]quit ...