我对C环境还很陌生。我想写一个程序,我需要在其中添加一个功能,其中我输入了一个IP地址,该功能应该直接告诉我这个IP地址是否可达。有什么建议吗?-Thanks
发布于 2015-09-11 14:20:24
您希望使用与实际ping命令相同的方法,还是使用更简单的方法?如果您想使用更简单的方法,只需尝试使用随机端口号建立到系统的TCP连接,如果系统不可访问,或者如果系统可访问但没有人在该端口上进行侦听,您将得到不同的错误(或者您得到一个连接,然后立即关闭)。
如果使用TCP连接,当TCP尝试并重试连接时,您可能会获得很长(许多秒)的超时。此外,如果系统可访问,则此类探测可能会被视为入侵企图,而ping (ICMP回应请求)则不能。
另一个警告是,从您的系统到远程系统的任何位置都可能被防火墙阻止TCP连接尝试和ICMP回应请求。
发布于 2015-09-11 14:30:06
好吧,我发现了问题所在,这是我的linux风格。通常,它应该在特定时间后检查超时事件,但在我的机器中,我需要明确指出这一点。
我知道问题出在哪里了。显然,对于少数版本的linux,您需要明确提到-w filer。所以我的解决方案是:
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 ");
}感谢大家的意见。:)
https://stackoverflow.com/questions/32516624
复制相似问题