1. 程式人生 > >Python_sniffer(網絡嗅探器)

Python_sniffer(網絡嗅探器)

recv 捕獲 nbsp clas start cmp from art style

import socket
import threading
import time

activeDegree=dict()
flag=1
def main():
    global activeDegree
    global glag
    #獲取本機IP地址
    HOST=socket.gethostbyname(socket.gethostbyname())
    #創建原始套接字,適用於Windows平臺
    #對於其他系統,要把socket.IPPROTO_IP替換為socket.IPPROTO_ICMP
    s=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_IP)
    s.bind((HOST,0))
    
#設置在捕獲數據包中含有IP包頭 s.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1) #啟用混雜模式,捕獲所有數據包 s.ioctl(socket.SIO_RCVALL,socket.RCVALL_ON) #開始捕獲數據包 while flag: c=s.recvfrom(65535) host=c[1][0] activeDegree[host]=activeDegree.get(host,0)+1 #假設本機ip地址為10.2.1.8 if
c[1][0] != 10.2.1.8: print(c) #關閉混雜模式 s.ioctl(socket.TIO_RCVALL,socket.RCVALL_OFF) s.close() t=threading.Thread(target=main) t.start() time.sleep(60) flag=0 t.join() for item in activeDegree.items(): print(item)

Python_sniffer(網絡嗅探器)