首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C程序中使用ping命令实现主机连通性

问在C程序中使用ping命令实现主机连通性
EN

Stack Overflow用户
提问于 2015-09-11 14:08:22
回答 2查看 4.1K关注 0票数 1

我对C环境还很陌生。我想写一个程序,我需要在其中添加一个功能,其中我输入了一个IP地址,该功能应该直接告诉我这个IP地址是否可达。有什么建议吗?-Thanks

EN

回答 2

Stack Overflow用户

发布于 2015-09-11 14:20:24

您希望使用与实际ping命令相同的方法,还是使用更简单的方法?如果您想使用更简单的方法,只需尝试使用随机端口号建立到系统的TCP连接,如果系统不可访问,或者如果系统可访问但没有人在该端口上进行侦听,您将得到不同的错误(或者您得到一个连接,然后立即关闭)。

如果使用TCP连接,当TCP尝试并重试连接时,您可能会获得很长(许多秒)的超时。此外,如果系统可访问,则此类探测可能会被视为入侵企图,而ping (ICMP回应请求)则不能。

另一个警告是,从您的系统到远程系统的任何位置都可能被防火墙阻止TCP连接尝试和ICMP回应请求。

票数 2
EN

Stack Overflow用户

发布于 2015-09-11 14:30:06

好吧,我发现了问题所在,这是我的linux风格。通常,它应该在特定时间后检查超时事件,但在我的机器中,我需要明确指出这一点。

我知道问题出在哪里了。显然,对于少数版本的linux,您需要明确提到-w filer。所以我的解决方案是:

代码语言:javascript
复制
Well, I figured what was the issue. Apparently for few flavors of linux you need to explicitly mention -w filer. so my solution is :

if ( system("ping -c1 128.205.159.60 -w 2 ") == 0)
    {
        printf ("\n Exists");
    }
    else
    {   printf ("\n Not reachable ");
    }

感谢大家的意见。:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32516624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档