源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python解析发往本机的数据包示例 (解析数据包)

  • 时间:2021-12-14 11:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python解析发往本机的数据包示例 (解析数据包)
tcp.py
[u]复制代码[/u] 代码如下:
# -*- coding: cp936 -*- import socket from struct import * from time import ctime,sleep from os import system system('title tcp sniffer') system('color 05') # the public network interface HOST = socket.gethostbyname(socket.gethostname()) # create a raw socket and bind it to the public interface s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP) s.bind((HOST, 0)) # Include IP headers s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) # receive all packages #s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) # receive a package while 1==1:     packet = s.recvfrom(65565)     packet = packet[0]     ip_header = packet[0:20]     iph = unpack('!BBHHHBBH4s4s',ip_header)     version = iph[0] >> 4 #Version     ihl = iph[0] * 0xF    #IHL     iph_length = ihl * 4  #Total Length     ttl = iph[5]     protocol = iph[6]     s_addr = socket.inet_ntoa(iph[8])     d_addr = socket.inet_ntoa(iph[9])     print ctime()     print 'Version : ' + str(version) + ' IHL : ' + str(ihl) + ' Total Length: '+str(iph_length) + ' TTL : ' +str(ttl) + ' Protocol : ' + str(protocol) + ' Source Address : ' + str(s_addr) + ' Destination Address : ' + str(d_addr)     if protocol == 6:         tcp_header = packet[20:40]         tcph = unpack('!HHLLBBHHH' , tcp_header)         source_port = tcph[0]         dest_port = tcph[1]         sequence = tcph[2]         acknowledgement = tcph[3]         doff_reserved = tcph[4]         tcph_length = doff_reserved >> 4         print 'Source Port : ' + str(source_port) + ' Dest Port : ' + str(dest_port) + ' Sequence Number : ' + str(sequence) + ' Acknowledgement : ' + str(acknowledgement) + ' TCP header length : ' + str(tcph_length)         data = packet[40:len(packet)]         print 'Data : ' + data # disabled promiscuous mode s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)
udp.py
[u]复制代码[/u] 代码如下:
# -*- coding: cp936 -*- import socket from struct import * from time import ctime,sleep from os import system system('title udp sniffer') system('color 05') # the public network interface HOST = socket.gethostbyname(socket.gethostname()) # create a raw socket and bind it to the public interface s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP) s.bind((HOST, 0)) # Include IP headers s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) # receive all packages #s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) # receive a package while 1==1:     packet = s.recvfrom(65565)     packet = packet[0]     ip_header = packet[0:20]     iph = unpack('!BBHHHBBH4s4s',ip_header)     version = iph[0] >> 4 #Version     ihl = iph[0] * 0xF    #IHL     iph_length = ihl * 4  #Total Length     ttl = iph[5]     protocol = iph[6]     s_addr = socket.inet_ntoa(iph[8])     d_addr = socket.inet_ntoa(iph[9])     if protocol == 17:         udp_header = packet[20:28]         udph = unpack('!HHHH' , udp_header)         source_port = udph[0]         dest_port = udph[1]         length = udph[2]         checksum = udph[3]         data = packet[28:len(packet)]         print ctime()         print 'Version : ' + str(version) + ' IHL : ' + str(ihl) + ' Total Length: '+str(iph_length) + ' TTL : ' +str(ttl) + ' Protocol : ' + str(protocol) + ' Source Address : ' + str(s_addr) + ' Destination Address : ' + str(d_addr)         print 'Source Port : ' + str(source_port) + ' Dest Port : ' + str(dest_port) + ' Length : ' + str(length) + ' Checksum : ' + str(checksum)         print 'Data : ' + data # disabled promiscuous mode s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部