tcpdump過濾資料包,結果不對?
需要寫個程式通過
pcap-filter
表示式過濾資料包,測試時發現過濾結果不對!現將問題簡化如下(以tcpdump舉例)
問題描述
- 通過 tcpdump 過濾出173_20170107_180747_p5p2.pcap 檔案中IP為 10.10.88.173的資料包,並儲存為result.pcap,過濾命令
tcpdump -r 173_20170107_180747_p5p2.pcap -w result.pcap "host 10.10.88.173"
- 原始資料包用wireshark開啟,設定過濾表示式為
ip.addr==10.10.88.173
,發現IP為 10.10.88.173的資料包個數為7150
- 但用wireshark開啟tcpdump過濾出的result.pcap檔案,發現其資料包個數為
7152
,如下圖!(此時如果知道原因就不用往下看了)
問題分析
- 通過對比wireshark和tcpdump過濾出的資料包,發現tcpdump過濾出的pcap檔案,多了兩個ARP資料包。如圖
- 但就自己所瞭解的,ARP協議應屬於鏈路層的,不屬於IP網路層的(這種表述可能有爭論),為什麼tcpdump會將其包含在過濾結果內呢?
- 通過
man pcap-filter
查閱pcap-filter表示式語法,發現自己寫的tcpdump過濾表示式host 10.10.88.173
是正確的啊
- 但細看卻發現,預設下的
host
,src host
,dst host
過濾出的資料包,是包含ARP, RARP協議的!!!wireshark解析ARP資料包,其也包含對應的IP 10.10.88.173,man pcap-filter
,其準確描述如下
問題解決
- 將tcpdump過濾表示式修改為
ip host 10.10.88.173
,即執行命令tcpdump -r 173_20170107_180747_p5p2.pcap -w result.pcap "ip host 10.10.88.173"
即可!
問題總結
- 在使用tcpdump或其他工具過特定IP的資料包時,pcap-filter過濾表示式的書寫要注意!
- 如果僅僅是想過濾出IP層的特定IP的資料,需要使用
ip host X.X.X.X
或ip src X.X.X.X
或ip dst X.X.X.X
- 如果僅僅是想過濾出ARP或RARP協議的IP資料包時,需要使用
arp host X.X.X.X
或rarp host X.X.X.X
man pcap-filter
,多熟悉下
相關文章
- Wireshark-過濾器-資料包解析過濾器
- 使用tcpdump檢視原始資料包TCP
- 使用tcpdump+wireshark抓包分析網路資料包TCP
- JS 根據彙總結果過濾JS
- 網路資料包分析工具tcpdump之一TCP
- winshark 過濾包
- tcpdump抓包TCP
- PHP 對資料進行驗證和過濾PHP
- 將Json載入到.NET物件並對結果進行過濾和排序JSON物件排序
- wireshark過濾返回包特徵特徵
- 使用MySQL之過濾資料MySql
- ELK<logstash>過濾json資料JSON
- ES查詢之查詢屬性過濾、結果高亮顯示
- ElasticSearch多層nested查詢、nested過濾排除非結果內容Elasticsearch
- Vue過濾案例、按鍵修飾符、資料雙向繫結Vue
- 使用Fiddler對iPhone蘋果手機進行資料抓包分析iPhone蘋果
- 在Linux中,如何使用 tcpdump 監聽主機為 192.168.1.1,tcp 端⼝為 80 的資料,並將將輸出結果儲存輸出到tcpdump.log?LinuxTCP
- 過濾搜尋引擎的抓取資料
- OpenYurt 之 Yurthub 資料過濾框架解析框架
- RangeBitmap提升Java流資料過濾效能Java
- tcpdump抓包分析NAT ping不通TCP
- 說說Linux抓包命令tcpdumpLinuxTCP
- 資料結果表概述
- 通過Vue的過濾器實現資料的資料脫敏Vue過濾器
- 分享一個瀏覽器外掛:搜尋引擎結果過濾器瀏覽器過濾器
- SpringBoot整合Jpa對資料進行排序、分頁、條件查詢和過濾Spring Boot排序
- Mybatis結果對映MyBatis
- CoDeSys3.5軟模擬結果不對的解決方法S3
- MyBatis 結果對映總結MyBatis
- 特殊的資料結構(布隆過濾器)的原理和實現及探究資料結構過濾器
- Vue專案資料動態過濾實踐Vue
- 資料庫知識點(5)——多列過濾資料庫
- 資料採集之:巧用布隆過濾器提取資料摘要過濾器
- 7.Djnago過濾器總結Go過濾器
- 在 Linux 命令列中使用 tcpdump 抓包Linux命令列TCP
- tcpdump抓包及tshark解包方法介紹TCP
- Yii2 search 搜尋[資料小部件--GridView--資料過濾]View
- python三引號巢狀雙引號執行結果不對Python巢狀
- python過濾nginx access日誌存入資料庫中PythonNginx資料庫