if ( (code = (*pr->recv)(seq, &tvrecv)) == -3)
{
printf(" *");
printf("----->>>");
}
else {
char str[NI_MAXHOST];
if (sock_cmp_addr(pr->sarecv, pr->salast, pr->salen) != 0)
{
printf("----->>>1%d",code);
if (getnameinfo(pr->sarecv, pr->salen, str, sizeof(str),NULL, 0, 0) == 0){
printf("----->>>2%d",code);
printf(" %s (%s)", str,sock_ntop_host(pr->sarecv, pr->salen));}
else
{
printf(" %s",sock_ntop_host(pr->sarecv, pr->salen));
printf("----->>>3");
}
memcpy(pr->salast, pr->sarecv, pr->salen);
}
tv_sub(&tvrecv, &rec->rec_tv);
rtt = tvrecv.tv_sec * 1000.0 + tvrecv.tv_usec / 1000.0;
printf(" %.3f ms", rtt);
if (code == -1)
{
done++;
printf("----->>>4");
}
else if (code >= 0)
printf(" (ICMP %s)", (*pr->icmpcode)(code));
}
fflush(stdout);
}
printf("\n");
}
为什么这个代码只显示了一次经过路由的IP地址 这段代码要怎么修改啊 求大神指导啊!!!!
linux下实现traceroute
答案:2 悬赏:40 手机版
解决时间 2021-02-15 10:13
- 提问者网友:疯子也有疯子的情调
- 2021-02-14 21:48
最佳答案
- 五星知识达人网友:风格不统一
- 2021-02-14 22:29
你可以直接查看traceroute的源代码再进行研究
全部回答
- 1楼网友:有你哪都是故乡
- 2021-02-14 22:47
方法/步骤这个需要linux服务器里边支持nc命令,如果还没有装的情况会显示如下
我们可以使用yum命令直接安装,我的是centos 6.5系统
如果不会用,直接打nc命令就会显示出它的使用方发。
如果需要测试某个服务器的端口在能不能正常在外面 访问
例如我测试一下 180.97.33.107 这个ip 的80 端口有没有开启可以使用命令
nc -z -w 1 180.97.33.107 80
可以看到默认是使用tcp进行测试的,如果要测试udp端口有没有开放的可以添加-u 一起使用。例如我测试一下202.96.128.86 这个ip的udp 53端口
nc -u -z -w 1 202.96.128.86 53
上面可以看到成功的会显示相关的信息,但是如果测试到端口是不开放的或者被防火墙拦截的就不会返回相关的信息。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯