ICMP协议解析

1.ICMP协议位置
在这里插入图片描述
1.ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议
2. ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6

2.ICMP功能
1、确认IP包是否成功到达目标地址
2、通知在发送过程中IP包被丢弃的原因
在这里插入图片描述

3.ICMP的报文格式
在这里插入图片描述
在这里插入图片描述
一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在。
在这里插入图片描述

4.scapy实现icmp协议,扫描主机是否存在

from scapy.all import *
import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

ip = '172.16.0.%d'

print(ip % 12)
for i in range(1, 255):
    packt = IP(dst=ip % i) / ICMP()
    result = sr1(packt, verbose=False, timeout=1)
    if result:
        print("存活的机器ip=" + result[IP].src)

以上代码,扫描172.16.0.1-172.16.0.254主机,存在则打印出来。
运行结果:
在这里插入图片描述
ICMP主要是弄清楚type值。

老生常谈:深圳有爱好音乐的会打鼓(吉他,键盘,贝斯等)的程序员和其它职业可以一起交流加入我们乐队一起嗨。我的QQ:657455400 表演视频实例https://v.qq.com/x/page/f0517awx0x4.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值