欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python解析發(fā)往本機(jī)的數(shù)據(jù)包示例 (解析數(shù)據(jù)包)

 更新時(shí)間:2014年01月16日 14:30:16   作者:  
這篇文章主要介紹了使用python解析獲取發(fā)往本機(jī)的數(shù)據(jù)包,并打印出來(lái), 大家參考使用吧

tcp.py

復(fù)制代碼 代碼如下:

# -*- 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

復(fù)制代碼 代碼如下:

# -*- 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)

相關(guān)文章

  • python3使用mutagen進(jìn)行音頻元數(shù)據(jù)處理的方法

    python3使用mutagen進(jìn)行音頻元數(shù)據(jù)處理的方法

    mutagen是一個(gè)處理音頻元數(shù)據(jù)的python模塊,支持多種音頻格式,是一個(gè)純粹的python庫(kù),僅依賴python標(biāo)準(zhǔn)庫(kù),可在Python?3.7及以上版本運(yùn)行,支持Linux、Windows?和?macOS系統(tǒng),這篇文章主要介紹了python3使用mutagen進(jìn)行音頻元數(shù)據(jù)處理,需要的朋友可以參考下
    2022-10-10
  • Python使用scipy進(jìn)行曲線擬合的方法實(shí)例

    Python使用scipy進(jìn)行曲線擬合的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Python使用scipy進(jìn)行曲線擬合的相關(guān)資料,Scipy優(yōu)化和擬合采用的是optimize模塊,該模塊提供了函數(shù)最小值(標(biāo)量或多維)、曲線擬合和尋找等式的根的有用算法,需要的朋友可以參考下
    2022-05-05
  • Python編寫(xiě)萬(wàn)花尺圖案實(shí)例

    Python編寫(xiě)萬(wàn)花尺圖案實(shí)例

    在本篇文章里小編給大家分享的是一篇關(guān)于Python編寫(xiě)萬(wàn)花尺圖案實(shí)例的內(nèi)容,有興趣的朋友們可以參考下。
    2021-01-01
  • Python爬蟲(chóng)設(shè)置Cookie解決網(wǎng)站攔截并爬取螞蟻短租的問(wèn)題

    Python爬蟲(chóng)設(shè)置Cookie解決網(wǎng)站攔截并爬取螞蟻短租的問(wèn)題

    這篇文章主要介紹了Python爬蟲(chóng)設(shè)置Cookie解決網(wǎng)站攔截并爬取螞蟻短租,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • 基于Python中的yield表達(dá)式介紹

    基于Python中的yield表達(dá)式介紹

    今天小編就為大家分享一篇基于Python中的yield表達(dá)式詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • 使用Python的urllib2模塊處理url和圖片的技巧兩則

    使用Python的urllib2模塊處理url和圖片的技巧兩則

    這篇文章主要介紹了使用Python的urllib2模塊處理url和圖片的兩個(gè)小技巧,分別是獲取帶有中文參數(shù)的url內(nèi)容和獲取遠(yuǎn)程圖片的大小和尺寸,需要的朋友可以參考下
    2016-02-02
  • 如何基于python實(shí)現(xiàn)不鄰接植花

    如何基于python實(shí)現(xiàn)不鄰接植花

    這篇文章主要介紹了如何基于python實(shí)現(xiàn)不鄰接植花,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)

    Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)

    這篇文章主要介紹了Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 深入理解python多線程編程

    深入理解python多線程編程

    進(jìn)程是資源分配的最小單位,他是操作系統(tǒng)進(jìn)行資源分配和調(diào)度運(yùn)行的基本單位。通俗理解:一個(gè)正在運(yùn)行的一個(gè)程序就是一個(gè)進(jìn)程,本文重點(diǎn)給大家介紹python多線程編程的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-04-04
  • python連接讀寫(xiě)操作redis的完整代碼實(shí)例

    python連接讀寫(xiě)操作redis的完整代碼實(shí)例

    這篇文章主要介紹了python連接讀寫(xiě)操作redis的完整代碼實(shí)例,包括redis連接與讀寫(xiě)操作,redis-sentinel哨兵模式下Python操作redis,redis-cluster(集群)模式下Python操作redis,需要的朋友可以參考下
    2023-01-01

最新評(píng)論