python socket 编程 (看python黑帽编程4.1做的笔记)
来源:互联网 发布:scrollreveal.js用法 编辑:程序博客网 时间:2024/05/28 15:30
原文链接python黑帽编程4.1 Sniffer嗅探器
通过 ifconfig eth1 promisc 设置网卡为混杂模式
创建socket对象、接收数据、分析数据
import oimport socketimport ctypes#PromiscuousSocket这个类负责创建一个绑定到当前主机名绑定的网卡上的raw socket对象,并设置启动混杂模式。class PromiscuousSocket (object):#__init__()用来创建socket对象,并绑定到对象的s字段上 def __init__(self): pass def __enter__(self): pass def __exit__(self,*args,**kwargs): pass#sniffer创建PromiscuousSocket类实例,并使用这个实例接收和分析数据def sniffer(count,buffersize=65565,showPort=False,showRawData=False): pass#printPacket用来显示补获的内容def printPacket(package,showPort,showRawData): passsniffer(count=10,showPort=True,showRawData=True)def __init__(self): HOST=socket.gethostbyname(socket.gethostname()) s=socket.socket(socket.AF_INET,socket.SOCKET_RAW, socket.IPPROTO_IP)#socket.AF_INET---表示ipv4;socket.RAW---表示原始套接字#setsocketopt用来对socket对象进行补充选项的设置,三个选项分别是level、选项名称、和值 s=setsocketopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) s.bind((HOST,0)) #保护IP头部 s.setsocketopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1) #设置混杂模式 s.ioctl(socket.SIO_RCVALL,socket.RCVALL_ON) self.s=sdef __enter__(self): return self.s #返回创建的socket对象def __exit__(self,*args,**kwargs): self.s.ioctl(socket.SIO_RCVALL,socket.RCVALL_OFF) #关闭混杂模式#接收数据包,打印基本信息def sniffer(count,buffersize=65565,showPort=False,showRawData=False): with PromiscuousSocket() as s: for i in range(count): package=s.recvfrom(buffSize) printPacket(package,showPort,showRawData)def printPacket(pacage,showPort,showRawData): dataIndex=0 headerIndex=1 ipAddressIndex=0 portIndex=1 print 'IP:',pacage[headerIndex][ipAddressIndex,end=''] if(showPort): print ('Port:',pacage[headerIndex][portIndex,end='') if(showRawData): print ('data:',pacage[dataIndex])
0 0
- python socket 编程 (看python黑帽编程4.1做的笔记)
- Python socket编程笔记
- python的socket编程
- python的socket编程
- 【python】python的socket编程
- Python之学习笔记(socket编程)
- python 网络编程笔记-socket
- Python黑帽编程2.1 Python编程哲学
- Python黑帽编程2.2 数值类型
- Python黑帽编程2.4 流程控制
- Python黑帽编程2.5 函数
- Python黑帽编程2.6 模块
- Python黑帽编程2.7 异常处理
- Python黑帽编程 3.1 ARP欺骗
- Python黑帽编程 3.2 ARP监控
- Python黑帽编程 3.4 跨越VLAN
- Python黑帽编程 3.5 DTP攻击
- Python黑帽编程-ARP之一
- 51nod 1013 3的幂数和(快速幂+费马小定理)
- Android listview或者xlisview或者Recyclerview 点击item没反应
- 洛谷 P1199 三国游戏
- Commands out of sync; you can't run this command now
- 隐马尔可夫学习笔记(一)
- python socket 编程 (看python黑帽编程4.1做的笔记)
- 动态加载dex
- BlueScreen
- 洛谷 P3371 【模板】单源最短路径
- 【NOIp复习】数据结构复习列表
- hdu 1372Knight Moves
- 堆-神奇的优先队列
- return 0 和return 1的区别
- 数据结构之单链表的增删改查(java版)