python黑帽之流量嗅探和解码IP层
来源:互联网 发布:淘宝账号余额查询 编辑:程序博客网 时间:2024/05/29 16:26
LZ考完又回来了哈哈哈哈哈哈,后面读研究生就可以不学原来的专业去选一些CS相关的课程,自学一些相关的知识,其中详细就不细说了。
好了,这次写了流量嗅探解码IP层。让我懊恼的是中间有几个if 循环总是提示说我缩进问题,搞得我最后去网上找了别人的代码复制过来才OK,不知道为什么,是notepad++的问题嘛?简直醉了。附上代码,
import socketimport os import structfrom ctypes import *#监听的主机host = '222.205.49.114'#IP头定义class IP(Structure): _fields_ = [ ("ihl", c_ubyte, 4), ("version", c_ubyte, 4), ("tos", c_ubyte), ("len", c_ushort), ("id", c_ushort), ("offset", c_ushort), ("ttl", c_ubyte), ("protocol_num", c_ubyte), ("sum", c_ushort), ("src", c_ulong), ("dst", c_ulong) ] def __new__(self,socket_buffer=None): return self.from_buffer_copy(socket_buffer) def __init__(self, socket_buffer=None): # map protocol constants to their names self.protocol_map = {1:"ICMP", 6:"TCP", 17:"UDP"} # human readable IP addresses self.src_address = socket.inet_ntoa(struct.pack("<L",self.src)) self.dst_address = socket.inet_ntoa(struct.pack("<L",self.dst)) # human readable protocol try: self.protocol = self.protocol_map[self.protocol_num] except: self.protocol = str(self.protocol_num)if os.name == 'nt':socket_protocol = socket.IPPROTO_IPelse:socket_protocol = socket.IPPROTO_ICMPsniffer = socket.socket(socket.AF_INET,socket.SOCK_RAW,socket_protocol)sniffer.bind((host,0))sniffer.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1)if os.name == 'nt':sniffer.ioctl(socket.SIO_RCVALL,socket.RCVALL_ON)try:while True:#读取数据包raw_buffer = sniffer.recvfrom(65565)[0]#将缓冲区前20个字节按照IP 头进行解析ip_header = IP(raw_buffer[0:20])#输出协议和通信双方的IP地址print('Protocol: %s %s -> %s'%(ip_header.protocol,ip_header.src_address,ip_header.dst_address))#处理CTRL-CTRL-Cexcept KeyboardInterrupt:if os.name == 'nt':sniffer.ioctl(socket.SIO_RCVALL,socket.RCVALL_OFF)
阅读全文
0 0
- python黑帽之流量嗅探和解码IP层
- python socket 解码IP层
- python socket 解码ICMP层
- Python 黑帽子 snffer ip header decoder
- python 解码和编码
- PYTHON 黑帽资料
- Python黑帽编程3.0 第三章 网络接口层攻击基础知识
- python中的编码和解码
- netvirt-浮动ip之流表实现分析
- 黑帽SEO:IP变种繁殖原理,黑帽 SEO IP 站群、IP URL、畸形变异 IP 域名
- Python网络编程 1.1 协议栈、编解码、IP
- Python字符串的编码和解码
- Python中进行Base64编码和解码
- python中url中解码和编码
- python进行Base64编码和解码
- Python基础-Json编码和解码操作
- Python中进行Base64编码和解码
- Python中的decode解码和encode编码
- 读《python 高效开发实战》
- MVC与单元测试实践之健身网站(七)-添加计划
- 简单的图片验证码
- 三、可优化的地方
- 正则表达式处理XML
- python黑帽之流量嗅探和解码IP层
- maven的特点
- Linux定时任务Crontab的使用方法总结
- 浮点数据类型
- 我对Laravel服务容器的一些理解
- StringBuilder 和 StringBuffer
- 学习hadoop(1)
- javac与java命令练习(测试类含包名)
- spring中CGLIB代理