from socket import * from struct import unpack import sys import binascii import string INTERFACE = "eth0" sock = socket(AF_PACKET, SOCK_DGRAM, 0x0800) sock.bind((INTERFACE, 0x0800)) while True: data = sock.recvfrom(1500, 0)[0] ipHdr=unpack("!12s4s4s",data[:20]) src=inet_ntoa(ipHdr[1]) dst=inet_ntoa(ipHdr[2]) print "Src: "+src+" Dst: "+dst+" Proto: "+binascii.hexlify(data[9]) print binascii.hexlify(data[20:]) str="" for i in data[20:]: if i in string.printable: str.append(i) print str