最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python實現windows下的抓包與解析

 更新時間:2018年01月15日 12:08:02   作者:風行小天 關注  
這篇文章主要介紹了使用Python實現windows下的抓包與解析,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

系統(tǒng)環(huán)境:windows7,選擇windows系統(tǒng)是因為我對自己平時日常機器上的流量比較感興趣

python環(huán)境:python2.7 ,這里不選擇python3的原因,是因為接下來要用到的scapy包在python3中安裝較于python2要麻煩得多。如果你習慣于用python3,數據包的分析完全可以放在3下面做,因為抓包和分析是兩個完全獨立的過程。

需要的python包:scapy和dpkt

抓包代碼:

from scapy.sendrecv import sniff
from scapy.utils import wrpcap
dpkt = sniff(count = 100)  #這里是針對單網卡的機子,多網卡的可以在參數中指定網卡
wrpcap("demo.pcap", dpkt)

你沒看錯,僅僅只需要兩行代碼就可以實現一個簡單的抓包功能。sniff函數負責嗅探數據包,而wrpcap函數將抓取到的數據包保存起來。

數據包的分析:

import dpkt
import socket
import datetime
def printPcap(pcap):
try:
for timestamp, buf in pcap:
eth = dpkt.ethernet.Ethernet(buf) #獲得以太包,即數據鏈路層包
print("ip layer:"+eth.data.__class__.__name__) #以太包的數據既是網絡層包
print("tcp layer:"+eth.data.data.__class__.__name__) #網絡層包的數據既是傳輸層包
print("http layer:" + eth.data.data.data.__class__.__name__) #傳輸層包的數據既是應用層包
print('Timestamp: ',str(datetime.datetime.utcfromtimestamp(timestamp))) #打印出包的抓取時間
if not isinstance(eth.data, dpkt.ip.IP):
print('Non IP Packet type not supported %s' % eth.data.__class__.__name__)
continue
ip = eth.data
do_not_fragment =bool(ip.off & dpkt.ip.IP_DF)
more_fragments =bool(ip.off & dpkt.ip.IP_MF)
fragment_offset = ip.off & dpkt.ip.IP_OFFMASK
print('IP: %s -> %s (len=%d ttl=%d DF=%d MF=%d offset=%d)' % (socket.inet_ntoa(ip.src), socket.inet_ntoa(ip.dst), ip.len, ip.ttl, do_not_fragment, more_fragments,fragment_offset))
except:
pass
def main():
f =open('demo.pcap','rb')
pcap = dpkt.pcap.Reader(f)
printPcap(pcap)
if __name__ =='__main__':
main()

結果顯示:

這是我打開360的路由器衛(wèi)士時抓取的數據包。這個軟件在打開時與路由器通信,獲得連接路由器的電腦和手機的列表。192.168.1.100是我的機器,192.168.1.1是路由器地址,其中可以看到windows發(fā)送的數據包的ttl值默認是128,其他的系統(tǒng)默認是64,與我們的理論常識是相符的。

TCP/IP五層分層的結構和封包過程,附圖二張:

總結

以上所述是小編給大家介紹的使用Python實現windows下的抓包與解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • Python自動搶紅包教程詳解

    Python自動搶紅包教程詳解

    在本篇文章里小編給大家整理了關于Python自動搶紅包的相關知識點內容,有興趣的朋友們參考學習下。
    2019-06-06
  • Python利用FFT進行簡單濾波的實現

    Python利用FFT進行簡單濾波的實現

    今天小編就為大家分享一篇Python利用FFT進行簡單濾波的實現,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python解決js文件utf-8編碼亂碼問題(推薦)

    python解決js文件utf-8編碼亂碼問題(推薦)

    這篇文章主要介紹了python解決js文件utf-8編碼亂碼問題,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • python?abs函數用法小結

    python?abs函數用法小結

    abs()是python的內置函數,它的作用是返回一個數的絕對值,abs函數的主要用途是返回一個數的絕對值,下面通過本文給大家分享python?abs函數怎么用,感興趣的朋友一起看看吧
    2024-05-05
  • Python中字符串列表的相互轉換實際應用場景

    Python中字符串列表的相互轉換實際應用場景

    在Python編程中,經常會遇到需要將字符串列表相互轉換的情況,這涉及到將逗號分隔的字符串轉換為列表,或者將列表中的元素連接成一個字符串,本文將深入討論這些情景,并提供豐富的示例代碼,幫助讀者更全面地理解字符串列表的轉換操作
    2023-12-12
  • Python實現解析ini配置文件的示例詳解

    Python實現解析ini配置文件的示例詳解

    在開發(fā)過程中,配置文件是少不了的,而且配置文件是有專門的格式的,比如:ini,?yaml,?toml?等等。而對于?Python?而言,也都有相應的庫來解析相應格式的文件,下面我們來看看?ini?文件要如何解析
    2022-09-09
  • python 畫出使用分類器得到的決策邊界

    python 畫出使用分類器得到的決策邊界

    這篇文章主要介紹了python 畫出使用分類器得到的決策邊界,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • python用10行代碼實現對黃色圖片的檢測功能

    python用10行代碼實現對黃色圖片的檢測功能

    這篇文章主要介紹了python用10行代碼實現對黃色圖片的檢測功能,涉及Python基于圖片庫PIL對圖片的檢測技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • Python中使用gflags實例及原理解析

    Python中使用gflags實例及原理解析

    這篇文章主要介紹了Python中使用gflags實例及原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Python Django框架實現應用添加logging日志操作示例

    Python Django框架實現應用添加logging日志操作示例

    這篇文章主要介紹了Python Django框架實現應用添加logging日志操作,結合實例形式分析了Django框架中添加Python內建日志模塊相關操作技巧,需要的朋友可以參考下
    2019-05-05

最新評論

大邑县| 兴山县| 南昌县| 襄汾县| 成安县| 五原县| 肇源县| 呼和浩特市| 遵义市| 民丰县| 铜梁县| 沁水县| 汝南县| 上犹县| 新龙县| 大兴区| 荆州市| 潮安县| 运城市| 江源县| 兴文县| 光山县| 夏津县| 凤阳县| 郓城县| 嘉兴市| 泊头市| 苍南县| 佛坪县| 沽源县| 偏关县| 武鸣县| 揭阳市| 景东| 金坛市| 东山县| 崇义县| 呼图壁县| 盖州市| 成安县| 慈溪市|