资源简介
sniffer_get_body.py
代码片段和文件信息
import struct
import socket
ip_header_fmt = ‘!BBHHHBBH4s4s‘
tcp_header_fmt = ‘!HHLLBBHHH‘
udp_header_fmt = ‘!HHHH‘
IP_HEAD_LEN = struct.calcsize(ip_header_fmt) # 20字节
TCP_HEADER_LEN = struct.calcsize(tcp_header_fmt) # 20字节
UDP_HEAD_LEN = struct.calcsize(udp_header_fmt) # 8字节
IP_MAX_LEN = 65535
def unpack_ip_header(buf):
if len(buf) < IP_HEAD_LEN:
return
try:
iph = struct.unpack(ip_header_fmt buf[:IP_HEAD_LEN])
protocol_map = {1: ‘ICMP‘ 6: ‘TCP‘ 17: ‘UDP‘}
return {
‘version‘: iph[0] >> 4 # 高4位
‘ihl‘: (iph[0] & 0xF) * 4 # 低4位,每个长度单位表示4字节,最大为60字节
‘tos‘: iph[1] # 8位
‘len‘: iph[2] # 16位
‘id‘: iph[3] # 16位
‘offset‘: iph[4] # 16位
‘ttl‘: iph[5] # 8位
‘protocol‘: protocol_map.get(iph[6] str(iph[6])) # 8位
‘cks‘: iph[7] # 16位
‘src‘: iph[8] # 32位
‘dst‘: iph[9] # 32位
}
except Exception as e:
raise e
def unpack_tcp_header(buf):
if len(buf) < TCP_HEADER_LEN:
return
try:
tcph = struct.unpack(tcp_header_fmt buf[:TCP_HEADER_LEN])
return {
‘src‘: tcph[0] # 16位
‘dst‘: tcph[1] # 16位
‘seq‘: tcph[2] # 32位
‘ack‘: tcph[3] # 32位
‘thl‘: (tcph[4] >> 4) * 4 # 高4位
‘wlen‘: tcph[6] # 16位
}
except Exception as e:
raise e
def unpack_udp_header(buf):
if len(buf) < UDP_HEAD_LEN:
return
try:
udph = struct.unpack(udp_header_fmt buf[:UDP_HEAD_LEN])
return {
‘src‘: udph[0] # 16位
‘dst‘: udph[1] # 16位
‘dlen‘: udph[2] # 16位
相关资源
- 手机短信轰炸.py
- you-get妹子图.py
- Python人工智能AI深度学习全套课程.t
- 千锋python爬虫教程之scrapy框架.txt
- 小甲鱼python课程96集包含源码+课件+课
- 小甲鱼python课程96集含源码课件课后习
- Python从入门到精通教程共40G.txt
- 06窗口摄像(视频).py
- nulindai.py
- 最新Python3.6网络爬虫实战案例5章(基
- 21天学通python.txt
- des.py
- 钉钉自定义机器人发送图片.py
- python-urx-master.zip
- python就业班.txt
- Python从入门到精通(明日科技出版)
- python基础视频地址.txt
- python从入门到实践课后试一试代码.
- LightBGM_Online1_87397.py
- 9b8dee39408392b66c4a776e4e7e05ce.py
- zw_基于python的网络爬虫设计.zip
- 将文件字母小写变大写并复制到其他
- python标准库中文版.tar
- dish_recognition_SDK.py
- python电子书大全.txt
- 鱼C小甲鱼零基础入门学习Python视频课
- 小甲鱼教程Python全部源码软件包课件
- EmailBoomFinal.py
- nude.py
- wenku_test.py
评论
共有 条评论