局域网IP存活及端口检测会用到两个工具:Ping及Telnet,这里会先讲下ICMP及应用场景,并结合Telnet实现IP存活及端口检测,从而发现可能存在入侵风险的主机。
ICMP:
ICMP是Internet Control Message Protocol的简写,即互联网控制消息协议。在局域网环境中,如果想做爬虫程序分析哪些IP被占用,并加以嗅探它是否开启常规端口(如HTTP的80端口、SSH的22端口),那么检测存活*快速简单的方式就是通过ICMP报文还实现,当然前提是对方主机允许ICMP报文请求及响应,否则无法实现目的。一般情况下,大部分主机是默认允许ICMP报文交互的,主要用于检测主机存活。
ICMP,TCP,UDP的区别:
ICMP不用于两点间传输数据,通常用于分析路由,检测网络连通性及网络延迟大小。除了系统自带的ping和traceroute这两个用于探测路由的工具,一般不由网络程序直接使用。在IPv4中对应的是ICMPv4,IPv6中对应的是ICMPv6。
TCP用于可靠的数据连接传输,需要双方建立稳定连接才能进行数据交互;UDP用于缺乏可靠性且无连接的数据传输场景,双方无需保持稳定连接,数据可能会存在丢失、错误及重复。
ICMP与UDP协议一样,是不可靠的协议,它是直接在IP数据包之上封装的ICMP报头,并非基于TCP/UDP之上的协议。