ip协议和icmp协议学习

ip协议关键报文:

版本号(version)

首部长度(ihl) ip数据包头部的长度,常用长度20bytes

服务类型(tbs)

总长度(len) ip数据包的总长度

标识(id)  数据包编号

标志(flag)  MF=1 表示后面的还有分片,MF=0  这是数据包的最后一个,DF=1 不能分片 DF=0 才能分片

源ip(src)

目的ip(dst)

片偏移(frag)  表示在分片后某片在原分组中的相对位置

生存时间(ttl)

协议(proto)  下一层协议 ,看完了就看下一个

首部校验和(checksum)

 wireshark 抓包:

icmp的ping利用icmp协议实现请求和应答

重定向:改变对端发送数据的路径

图解:

 

icmp抓包

 

type代码:

0  应答

3  不可到达

8  请求

icmp扫描器

sr没有二层协议,srp是有二层协议

from scapy.all import *
ip=['192.168.85.{}'.format(str(i)) for i in range(128,140)]
ifcace='VMware Virtual Ethernet Adapter for VMnet8'
for dip in ip:
    icmp_p=Ether()/IP(dst=dip)/ICMP(type=8)
    p=srp(icmp_p,timeout=2,verbose=0,iface=ifcace)
    for req,rep in p[0]:
        if(rep[ICMP].type==0):
            print('{}存活'.format(dip))
        else:
            print('{}不存活'.format(dip))
    for req in p[1]:
        print('{}不存活'.format(dip))

运行效果:

 

posted @ 2023-04-17 23:08  mushangqiujin  阅读(1)  评论(0编辑  收藏  举报  来源