黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

利用python-pypcap抓取帶VLAN標(biāo)簽的數(shù)據(jù)包方法

系統(tǒng) 2153 0

1、背景介紹

在采用通常的socket抓包方式下,操作系統(tǒng)會(huì)自動(dòng)將收到包的VLAN信息剝離,導(dǎo)致上層應(yīng)用收到的包不會(huì)含有VLAN標(biāo)簽信息。而libpcap雖然是基于socket實(shí)現(xiàn)抓包,但在收到數(shù)據(jù)包后,會(huì)進(jìn)一步恢復(fù)出剝離的VLAN信息,能夠滿足需要抓取帶VLAN標(biāo)簽信息的數(shù)據(jù)包的需求場(chǎng)景。

python-pypcap包是對(duì)libpcap庫(kù)的python語(yǔ)言封裝,本文主要介紹如果利用python-pypcap在網(wǎng)絡(luò)接口抓取帶VLAN標(biāo)簽的數(shù)據(jù)包。

2、環(huán)境準(zhǔn)備

libpcap-0.9.4

python-pypcap-1.15,該包依賴libpcap-0.9.4

可以通過(guò)在python交互式環(huán)境下運(yùn)行import pcap,如果導(dǎo)入成功,說(shuō)明python-pypcap-1.15已成功安裝。

3、抓包實(shí)現(xiàn)

pypcap包封裝了libpcap提供的許多接口函數(shù),簡(jiǎn)單的抓包可以采用如下幾個(gè)步驟完成:

1)Open a handle to a packetcapture descriptor.

fpcap = pcap.pcap(name=iface)

指定從iface接口抓包,此處可以添加其他相關(guān)抓包參數(shù),大家可以參考對(duì)pcap.pcap類的說(shuō)明。

2)設(shè)置過(guò)濾規(guī)則

fpcap.setfilter('inbound')

此處inbound表示抓取所有發(fā)送到該接口的包,不抓取從該接口發(fā)送出的數(shù)據(jù)包,規(guī)則的設(shè)置同tcpdump抓包設(shè)置過(guò)濾規(guī)則相同。

3)調(diào)用loop函數(shù)循環(huán)抓包

fpcap.loop(callback,None)

源文件中對(duì)loop函數(shù)的說(shuō)明如下:

利用python-pypcap抓取帶VLAN標(biāo)簽的數(shù)據(jù)包方法_第1張圖片

此處需要說(shuō)明的是,在實(shí)際使用中發(fā)現(xiàn)提供了cnt參數(shù)后程序運(yùn)行會(huì)報(bào)錯(cuò),而不加cnt參數(shù)可以成功運(yùn)行,即采用fpcap.loop(callback,None)。

4)實(shí)現(xiàn)包處理回調(diào)函數(shù)callback

callback函數(shù)聲明如下:

利用python-pypcap抓取帶VLAN標(biāo)簽的數(shù)據(jù)包方法_第2張圖片

這里需要說(shuō)明的是,參數(shù)timestamp和pkt會(huì)由loop函數(shù)自動(dòng)傳入,pkt表示數(shù)據(jù)包,但其類型是buffer類型,這里可以采用圖中的scapy.layers.l2.Ether(str(pkt))將pkt轉(zhuǎn)化為scapy的Ether類型[如果包為dot3類型的,也將自動(dòng)轉(zhuǎn)化為Dot3類型的對(duì)象,此處針對(duì)isis協(xié)議]。然后再通過(guò)p.time = timestamp將時(shí)間戳信息更新到包中。后續(xù)就可以按照處理scapy的Ether類型包的方式進(jìn)行進(jìn)一步包處理。

4、示例

下述代碼實(shí)現(xiàn)了一個(gè)線程類,能夠在指定的接口iface上抓取進(jìn)入該接口的包并打印包概要信息。

利用python-pypcap抓取帶VLAN標(biāo)簽的數(shù)據(jù)包方法_第3張圖片

以上這篇利用python-pypcap抓取帶VLAN標(biāo)簽的數(shù)據(jù)包方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論