本文目录一览:
请教如何用C语言实现ping命令
如果你想获取到Ping的结果
那么直接system 调用ping或者popen调用即可。
如果想自己实现,就需要用socket自行发Ping包,并获取回应
这个就很麻烦了。 建议可以看一下gnu ping的源码,或者busybox的ping部分代码。
如何使用C语言来判断ping命令是否能ping通,求代码。 要c的不要c++或c#的。
代码在 MAC OS 下运行良好,在 Linux 下得话需要稍作修改
#include stdio.h
#include fcntl.h
#include string.h
#include stdlib.h
#include unistd.h
int main(void)
{
char host[256], cmd[256];
printf("please input dest_host:");
scanf("%s", host);
strncpy(cmd, "ping -c5 ", 9);
strncat(cmd, host, strlen(host));
strncat(cmd, " ping.txt", 11);
pid_t pid = fork();
if(pid 0)
{
printf("fork error\n");
exit(-1);
}
if(pid==0)
{
if(execlp("/bin/sh", "sh", "-c", cmd, (char *)0) 0)
printf("execlp error\n");
exit(0);
}
if(waitpid(pid, NULL, 0) 0)
printf("waitpid error\n");
int fd = open("ping.txt", O_RDWR);
int n;
char buf[1024];
n = read(fd, buf, sizeof(buf));
if(n = 0)
{
printf("read error\n");
exit(-1);
}
if(strstr(buf, "100.0%") == NULL)
printf("can reach %s", host);
else
printf("can't reach %s", host);
close(fd);
return 0;
}
如果你想要 ping 程序,刚好我最近写了一个,要的话私信
如何用C语言调用ping命令
#includestdio.h
#includeWindows.h
int main(void)
{
system("ping 192.168.0.1
);
/*
这里ping的是我自己电脑的ip地址(举个例子),你可以换成你想要的,或者某个网站地址均可
*/
return 0;
}