linux编程:各位linux牛人,检测一个IP是否连通,用什么实现好

linux编程:求助各位linux牛人,检测一个IP是否连通,用什么实现好
linux编程:求助各位linux牛人,检测一个IP是否连通,用什么实现好?

linux下C/C++编程,现在要实现一个功能,就是给定一个IP地址,看是否连通。原来的方案是system(ping )来检测,但是很多机器有可能把ping禁止了,所以这个方案不行。求教各位达人有什么其它好的办法编程实现呢?
谢谢!!


那能有什么办法。要想有回应除了ICMP这样确定的协议以外,至少得用tcp吧。而TCP你就得知道确定的端口,问题是除了ICMP还有什么确定的通用的,公开的端口么?

所以你杯具了。


每个端口遍历bind它 connect它 
看它还通不通 哈哈


总得有一个端口用来检测
telnet ip port


基本无解~!


可以让对方开个端口专门用来检测嘛


从0到65535端口,一个一个发送数据,一个一个试。


这个真没什么好办法吧,现在服务器端的安全防范尤其强,不会让你随意扫描端口的。


基本无解~!


首先
去测试一个有ip的connect速度,再测试一个无ip的connect拒绝速度
有IP的connect回绝是从目的台式机回的,无IP的,最近的路由器或交换机回的,速度上会不一致

tcp 去connect 一个端口(随便选) ,根据之前的速度值来判定 //哈哈,只是猜测


3楼的兄弟说的有道理,小弟也认为只有ICMP协议好用

探讨

可以让对方开个端口专门用来检测嘛


考虑telnet 需要知道端口号不过


检测是否“连通”的目的是什么,肯定是为了对接下来进一步的网络操作进行判断,接下来要操作的端口是确定的,所以“联通”的标准应该精确到该端口,否则,如果目标地址能ping通,但是该端口不通,对于你的应用来说,同样视为是“不通”的,反之亦然,所以,在这个前提下,telnet检测即可

探讨

linux编程:求助各位linux牛人,检测一个IP是否连通,用什么实现好?

linux下C/C++编程,现在要实现一个功能,就是给定一个IP地址,看是否连通。原来的方案是system(ping )来检测,但是很多机器有可能把ping禁止了,所以这个方案不行。求教各位达人有什么其它好的办法编程实现呢?
谢谢!!

探讨

引用:
linux编程:求助各位linux牛人,检测一个IP是否连通,用什么实现好?

linux下C/C++编程,现在要实现一个功能,就是给定一个IP地址,看是否连通。原来的方案是system(ping )来检测,但是很多机器有可能把ping禁止了,所以这个方案不行。求教各位达人有什么其它好的办法编程实现呢?
谢谢!!

如果在同一个LAN里,发A……


说的很对

探讨

引用:
引用:
linux编程:求助各位linux牛人,检测一个IP是否连通,用什么实现好?

linux下C/C++编程,现在要实现一个功能,就是给定一个IP地址,看是否连通。原来的方案是system(ping )来检测,但是很多机器有可能把ping禁止了,所以这个方案不行。求教各位达人有什么其它好的办法编程实现呢?
……


可以考虑一下类似 tracert 的机制,对方机器开还是不开,他所在局域网的网关是知道的,有时是可以探测出来的.


还是ICMP方法,对指定IP发送一个UDP包,随意端口,等待一定时间一般会回复一个ICMP,会告诉你是目标不可达还是端口不可达,端口不可达就是存在此IP的机器。不过很多时候根本收不到回复,需要多尝试。
如果是内网就直接使用arp协议。


先bind然后connect


可以参考 nmap 的做法和源代码
http://nmap.org/book/man-port-scanning-techniques.html

linux编程:各位linux牛人,检测一个IP是否连通,用什么实现好

相关文章:

你感兴趣的文章:

标签云: