我对C环境很新。我想写一个程序,我需要添加一个功能,我输入一个IP地址,该功能应该直接告诉我这个IP地址是否可以访问。有什么指针吗? 谢谢
答案 0 :(得分:2)
您想使用与实际ping
命令相同的方法,还是更简单的方法?如果您想要更简单的东西,只需尝试使用随机端口号与系统建立TCP连接,如果系统无法访问或者可以访问但是没有人在该端口上侦听,您将得到不同的错误(或者您获得一个连接,然后你迅速关闭。)
如果使用TCP连接,则可能会因为TCP尝试并重试连接而获得很长(很多秒)的超时。此外,如果系统可以访问,则此类探测可能被视为入侵尝试,而ping(ICMP回应请求)则不是。
另一个警告是,防火墙可能会阻止TCP连接尝试和ICMP回应请求从系统到远程系统的任何位置。
答案 1 :(得分:1)
好吧我弄清楚了问题,这是我的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 ");
}
感谢大家的意见。 :)