# 第?5?章?文件輸入/輸出及打印
**目錄**
+ [5.1\. 說明](#calibre_link-228)
+ [5.2\. 打開捕捉文件](#calibre_link-119)
+ [5.2.1\. 打開捕捉文件對話框](#calibre_link-61)
+ [5.2.2\. 輸入文件格式](#calibre_link-203)
+ [5.3\. 保存捕捉包](#calibre_link-91)
+ [5.3.1\. "save Capture File As/保存文件為"對話框](#calibre_link-63)
+ [5.3.2\. 輸出格式](#calibre_link-229)
+ [5.4\. 合并捕捉文件](#calibre_link-62)
+ [5.4.1\. 合并文件對話框](#calibre_link-92)
+ [5.5\. 文件集合](#calibre_link-64)
+ [5.5.1\. 文件列表對話框](#calibre_link-230)
+ [5.6\. 導出數據](#calibre_link-122)
+ [5.6.1\. "Export as Plain Text File"對話框](#calibre_link-65)
+ [5.6.2\. "Export as PostScript File" 對話框](#calibre_link-66)
+ [5.6.3\. "Export as CSV (Comma Separated Values) File" 對話框](#calibre_link-67)
+ [5.6.4\. "Export as PSML File" 對話框](#calibre_link-68)
+ [5.6.5\. "Export as PDML File" 對話框](#calibre_link-69)
+ [5.6.6\. "Export selected packet bytes" 對話框](#calibre_link-70)
+ [5.6.7\. "Export Objects" 對話框](#calibre_link-231)
+ [5.7\. 打印包](#calibre_link-71)
+ [5.7.1\. 打印 對話框](#calibre_link-232)
+ [5.8\. 包范圍選項](#calibre_link-106)
+ [5.9\. 包格式選項](#calibre_link-106)
## 5.1.?說明
本章將介紹捕捉數據的輸入輸出。
* 打開/導入多種格式的捕捉文件
* 保存/導出多種格式的捕捉文件
* 合并捕捉文件
* 打印包
## 5.2.?打開捕捉文件
Wireshark可以讀取以前保存的文件。想讀取這些文件,只需選擇菜單或工具欄的:“File/**Open**”。Wireshark將會 彈出打開文件對話框。詳見[第?5.2.1?節 “打開捕捉文件對話框”](#calibre_link-61 "5.2.1.?打開捕捉文件對話框")
> 
> 如果使用拖放功能會更方便
> 要打開文件,只需要從文件管理器拖動你想要打開的文件到你的Wireshark主窗口。但拖放功能不是在所有平臺都支持。
在你載入新文件時,如果你沒有保存當前文件,Wireshark會提示你是否保存,以避免數據丟失。(你可以在首選項禁止提示保存)
除Wireshark原生的格式(libpcap 格式,同樣被 tcpdump/Windump和 其他基于libpcap/WinPcap使用)外,Wireshark可以很好地讀取許多捕捉文件格式。支持的格式列表見[第?5.2.2?節 “輸入文件格式”](#calibre_link-203 "5.2.2.?輸入文件格式")
### 5.2.1.?打開捕捉文件對話框
打開文件對話框可以用來查找先前保存的文件。[表?5.1 “特定環境下的打開文件對話框”](#calibre_link-204 "表?5.1.?特定環境下的打開文件對話框")顯示了一些Wireshark打開文件對話框的例子。
> 
> 對話框的顯示方式取決于你的操作系統
> 對話框的顯示方式取決于操作系統,以及GTK+工具集的版本。但不管怎么說,基本功能都是一樣的。
常見對話框行為:
* 選擇文件和目錄
* 點擊Open/OK按鈕,選擇你需要的文件并打開它
* 點擊Cancle按鈕返回Wireshark主窗口而不載入任何文件。
Wireshark對話框標準操作擴展
* 如果選中文件,可以查看文件預覽信息(例如文件大小,包個數。。。)
* 通過"filter:"按鈕、顯示字段指定顯示過濾器。過濾器將會在打開文件后應用。在輸入過濾字符時會進行語法檢查。如果輸入正確背景色為綠色,如果錯誤或輸入未結束,背景色為綠色。點擊filter按鈕會打開過濾對話框,用于輔助輸入顯示過濾表達式。(詳見[第?6.3?節 “瀏覽時過濾包”](#calibre_link-4 "6.3.?瀏覽時過濾包"))
XXXX-we need a better description of these read filters(貌似說這一段需要更多的做介紹)
* 通過點擊復選框指定那些地址解析會被執行。詳見[第?7.6?節 “名稱解析”](#calibre_link-86 "7.6.?名稱解析")
> 
> 在大文件中節約大量時間 |
> 你可以在打開文件后修改顯示過濾器,和名稱解析設置。但在一些巨大的文件中進行這些操作將會占用大量的時間。在這種情況下建議在打開文件之前就進行相關過濾,解析設置。
**表?5.1.?特定環境下的打開文件對話框**
**圖?5.1.?Windows下的打開對話框**

**Microsoft Windows(GTK2 installed)**
此對話框一般都帶有一些wireshark擴展
此對話框的說明:
* 如果可用,"help"按鈕將會打開本節的用戶手冊。
* "Filter."按鈕 在當前版本的windows下不可用(我看了一下,的確不可用,但過濾輸入框還是可用的)
* 錯誤提示功能:如果Wireshark無法識別選中的捕捉文件,Open按鈕將為灰色不可用[[a](#calibre_link-205)]
**圖?5.2.?新版GtK下的打開對話框**

**Unix/Linux:GTK version >= 2.4**
這是在Gimp/GNOME桌面環境下的打開文件對話框
對此對話框的說明。
* “+”按鈕可以將右側選中的目錄添加到收藏夾。成為預設目錄。
* "-"按鈕可以移除左側目錄列表中選中的目錄。("Home","Desktop","Filesystem"不可以移除)
* 如果Wireshark不能識別選中的捕捉文件,"Open"按鈕將是灰色不可用。
**圖?5.3.?舊版GTK下的打開對話框**

**Unix/Linux: GTK version < 2.4 / Microsoft Windows (GTK1 installed)**
gimp/gnome桌面環境,或windows gtk1下的的。
該對話框說明
* 如果未能識別不做文件,Open按鈕將為灰色不可用
[[a](#calibre_link-206)] 我測試了一下,無論什么文件,Wireshark都會去嘗試打開,更遑論錯誤檢查
### 5.2.2.?輸入文件格式
可以打開的捕捉文件格式列表:
* libpcap, tcpdump and various other tools using tcpdump's capture format
* Sun snoop and atmsnoop
* Shomiti/Finisar Surveyor captures
* Novell LANalyzer captures
* Microsoft Network Monitor captures
* AIX's iptrace captures
* Cinco Networks NetXray captures
* Network Associates Windows-based Sniffer and Sniffer Pro captures
* Network General/Network Associates DOS-based Sniffer (compressed or uncompressed) captures
* AG Group/WildPackets EtherPeek/TokenPeek/AiroPeek/EtherHelp/PacketGrabber captures
* RADCOM's WAN/LAN Analyzer captures
* Network Instruments Observer version 9 captures
* Lucent/Ascend router debug output
* HP-UX's nettl
* Toshiba's ISDN routers dump output
* ISDN4BSD i4btrace utility
* traces from the EyeSDN USB S0
* IPLog format from the Cisco Secure Intrusion Detection System
* pppd logs (pppdump format)
* the output from VMS's TCPIPtrace/TCPtrace/UCX$TRACE utilities
* the text output from the DBS Etherwatch VMS utility
* Visual Networks' Visual UpTime traffic capture
* the output from CoSine L2 debug
* the output from Accellent's 5Views LAN agents
* Endace Measurement Systems' ERF format captures
* Linux Bluez Bluetooth stack hcidump -w traces
* Catapult DCT2000 .out files
> 
> 不正確的包類型可能無法會導致打開錯誤。
> 某些類型的捕捉包可能無法讀取。以太網環境下捕捉的大部分類型格式一般都等打開。但有些包類型(如令牌環環包),不是所有的格式都被wireshark支持。
## 5.3.?保存捕捉包
你可以通過File->Save As...菜單保存捕捉文件。在保存時可以選擇保存哪些包,以什么格式保存。
> 
> 保存可能會丟失某些有用的信息
> 保存可能會少量都是某些信息。例如:已經被丟棄的包會丟失。詳見???
### 5.3.1.?"save Capture File As/保存文件為"對話框
"Save Capture File As"對話框用于保存當前捕捉數據到文件。???列舉了該對話框的一些例子。
> 
> 對話框的顯示方式取決于你的操作系統
> 對話框的顯示方式取決于你的操作系統和GTK+工具集版本的不同。但大部分基本功能都是一樣的。
**表?5.2.?特定環境下的"Save Capture File As"對話框**
| <a name="d0e4171"></a>
**圖?5.4.?Windows下的保存為對話框**
<a name="fig5.4"></a> | **Microsoft Windows(GTK2 installed)**
此對話框一般都帶有一些wireshark擴展
此對話框的說明:
* 如果可用,"help"按鈕將會打開本節的用戶手冊。
* 如果你未輸入文件擴展名-例如.pcap,Wireshark會自動添加該文件格式的標準擴展名。
**圖?5.5.?新版GtK下的保存為對話框**

**Unix/Linux:GTK version >= 2.4**
這是在Gimp/GNOME桌面環境下的保存文件對話框
對此對話框的說明。
* "Browse for other flders"前的“+”按鈕可以讓你指定文件保存的位置。。
**圖?5.6.?舊版GTK下的保存為對話框**

**Unix/Linux: GTK version < 2.4 / Microsoft Windows (GTK1 installed)**
gimp/gnome桌面環境,或windows gtk1下的的。
通過這些對話框,你可以執行如下操作:
1. 輸入你指定的文件名。
2. 選擇保存的目錄
3. 選擇保存包的范圍,見[第?5.8?節 “包范圍選項”](#calibre_link-106 "5.8.?包范圍選項")
4. 通過點擊"File type/文件類型"下拉列表指定保存文件的格式。見???
> 
> 可供選中的文件格式可能會沒有那么多 |
> 有些類型的捕捉格式可能不可用,這取決于捕捉包的類型。
> 
> 可以直接保存為另一種格式。]
> 你可以以一種格式讀取捕捉文件,保存時使用另外一種格式(這句可能翻譯有誤。)
5. 點擊"Save/OK"按鈕保存。如果保存時遇到問題,會出現錯誤提示。確認那個錯誤提示以后,你可以重試。
6. 點擊"Cancel"按鈕退出而不保存捕捉包。
### 5.3.2.?輸出格式
可以將Wireshark不著的包保存為其原生格式文件(libpcap),也可以保存為其他格式供其他工具進行讀取分析。
> 
> 各文件類型之間的時間戳精度不盡相同
> 將當前文件保存為其他格式可能會降低時間戳的精度,見[第?7.3?節 “時間戳”](#calibre_link-120 "7.3.?時間戳")
Wireshark可以保存為如下格式。
* libpcap, tcpdump and various other tools using tcpdump's capture format (*.pcap,*.cap,*.dmp)
* Accellent 5Views (*.5vw)
* HP-UX's nettl (*.TRC0,*.TRC1)
* Microsoft Network Monitor - NetMon (*.cap)
* Network Associates Sniffer - DOS (*.cap,*.enc,*.trc,*fdc,*.syc)
* Network Associates Sniffer - Windows (*.cap)
* Network Instruments Observer version 9 (*.bfr)
* Novell LANalyzer (*.tr1)
* Sun snoop (*.snoop,*.cap)
* Visual Networks Visual UpTime traffic (*.*)
## 5.4.?合并捕捉文件
有時候你需要將多個捕捉文件合并到一起。例如:如果你對多個接口同時進行捕捉,合并就非常有用(Wireshark實際上不能在同一個實體運行多次捕捉,需要開啟多個Wireshark實體)
有三種方法可以合并捕捉文件:
* 從"File"菜單使用,**menu item "Merge"(菜單項 "合并")**,打開合并對話框,見[第?5.4.1?節 “合并文件對話框”](#calibre_link-92 "5.4.1.?合并文件對話框")
* 使用拖放功能,將多個文件拖放到主窗口。Wireshark會創建一個臨時文件嘗試對拖放的文件按時間順序進行合并。如果你只拖放一個文件,Wireshark可能(只是)簡單地替換已經打開的文件。
* 使用**mergecap**工具。該工具是在命令行進行文件合并的。它提供了合并文件的豐富的選項設置。見???
### 5.4.1.?合并文件對話框
通過該對話框可以選擇需要合并的文件,并載入合并它們。
> 
> 首先你會被提示有一個文件未保存
> 如果當前文件未保存,Wireshark會在啟動合并對話框之前提示你是否保存文件。
此處的對話框的大多數內容與"Open Capture Files/打開捕捉文件"對話框類似,參見[第?5.2.1?節 “打開捕捉文件對話框”](#calibre_link-61 "5.2.1.?打開捕捉文件對話框")
合并對話框中用于合并的控制選項:
將包插入已存在文件前
將選擇文件內的包插入到當前已經載入文件之前
按時間順序合并文件
將當前選擇的文件和已載入的文件里的所有包按時間順序合并
追加包到當前文件
將選擇文件的包插入到當前載入文件的末尾
**表?5.3.?不同環境下的"Merge Capture File As"對話框**
**圖?5.7.?Windows下的"合并"對話框**

**Microsoft Windows(GTK2 installed)**
此對話框一般都帶有一些wireshark擴展
**圖?5.8.?新版GtK下的合并話框**

**Unix/Linux:GTK version >= 2.4**
這是在Gimp/GNOME桌面環境下的合并對話框
**圖?5.9.?舊版GTK下的合并對話框**

**Unix/Linux: GTK version < 2.4 / Microsoft Windows (GTK1 installed)**
## 5.5.?文件集合
在進行捕捉時(見:[第?4.6?節 “捕捉文件格式、模式設置”](#calibre_link-51 "4.6.?捕捉文件格式、模式設置"))如果設置"Multiple Files/多文件"選項,捕捉數據會分割為多個文件,稱為文件集合.
大量文件手動管理十分困難,Wirreshark的文件集合特性可以讓文件管理變得方便一點。
> **Wireshark是如何知道一個文件所屬的文件集合t的?**
>
> 文件集合中的文件名以前綴號碼+"_"+號碼+"_"+日期時間+后綴的形式生成的。類似于:"test_00001_20060420183910.pcap".文件集合所有的文件都有一個共同的前綴(例如前面的"test")和后綴(例如:".pcap")以及變化的中間部分。
>
> 要查找一個文件集合的所有文件。Wireshark會掃描當前載入文件的目錄下的所有文件,找到那些和當前文件名具有相同部分(前綴和后綴)的作為文件集合。
>
> 這個簡單的機制通常能正常運行,但也有它的弊端。如果幾次進行的捕捉具有相同的前綴和后綴,Wireshark會將它們看作同一個文件集合。如果文件被更名或者放在不同的目錄下,這樣的按文件名查找機制會無法找到文件集合的所有文件。
使用"File"菜單項的子菜單"File Set"可以對文件集合集合進行很方便的控制。
* **List Files** 對話框顯示一個對話框列出所有被識別出來屬于當前文件集合的文件列表。
* **Next Files** 關閉當前文件,打開文件集合列表中的下一個文件。
* **Previous Files** 關閉當前文件,打開文件集合列表中的前一個文件。
### 5.5.1.?文件列表對話框
**圖?5.10.?文件列表對話框**

每行包含文件集合中的一個文件的相關信息。
* **Filename** 文件名稱。如果你雙擊文件名稱(或者單擊單選鈕),當前文件會被關閉,同時載入對應的文件。
* **Created** 文件創建時間。
* **Last Modified** 最后一次修改文件的時間。
* **size** 文件的大小。
最后一行"...indirctory:"顯示所有文件所在的目錄。
在每次捕捉文件被打開、關閉時,對話框的內容會變化。
Close按鈕關閉該對話框。
## 5.6.?導出數據
Wireshark支持多種方法,多種格式導出包數據,本節描述Wireshark常見的導出包數據方法。
> 
> 注意
> 個別數據需要使用許多特殊方式導出,在合適的時候我們會對其進行介紹。
XXX - add detailed descriptions of the output formats and some sample output, too./同樣需要對導出格式進行介紹,同樣也需要一些范例范例
### 5.6.1.?"Export as Plain Text File"對話框
導出包數據為"plain AscⅡ "文本文本見,適合打印包數據。
**圖?5.11.?"Export as Plain Text File"對話框**

* **Export to file:**導出包數據為指定的文件
* **Packet Range** 參見[第?5.8?節 “包范圍選項”](#calibre_link-106 "5.8.?包范圍選項")
* **Packet Details** 參見???
### 5.6.2.?"Export as PostScript File" 對話框
導出數據為PostScript格式,PostScript是一種打印格式。
> 
> 提示
> PostScribt文件可以使用ghostscrip轉換為PDF格式。例如導出文件名為foo.ps,然后調用**ps2pdf foo.ps**命令就可以進行轉換。
**圖?5.12.?"Export as PostScript File" 對話框**

* Export to file: 導出包數據為指定的文件
* Packet Range: 參見[第?5.8?節 “包范圍選項”](#calibre_link-106 "5.8.?包范圍選項")
* Packet Details: 參見???
### 5.6.3.?"Export as CSV (Comma Separated Values) File" 對話框
_注:筆者認為此處應該增加截屏,因為我的xp下界面與前圖風格迥異,這里就不提供了_
導出包的摘要為CVS格式,可以被電子表格程序使用。
* **Export to file** 導出包數據為指定的文件
* **Packet Range** 參見[第?5.8?節 “包范圍選項”](#calibre_link-106 "5.8.?包范圍選項")
### 5.6.4.?"Export as PSML File" 對話框
導出包數據為PSML格式,它是一種僅包含包摘要信息的xml格式。PSML格式的說明參見:[http://www.nbee.org/Docs/NetPDL/PSML.htm.](http://www.nbee.org/Docs/NetPDL/PSML.htm)
**圖?5.13.?"Export as PSML File"對話框**

* Export to file:導出包數據為指定的文件
* Packet Range: 參見[第?5.8?節 “包范圍選項”](#calibre_link-106 "5.8.?包范圍選項")
上圖沒有諸如Packet details的選項,因為PSML文件格式有特殊要求,不包含這些內容。
### 5.6.5.?"Export as PDML File" 對話框
導出數據包為PDML格式,PDML是包含包詳情的xml格式文件。PDML文件的說明見:[http://www.nbee.org/Docs/NetPDL/PDML.htm](http://www.nbee.org/Docs/NetPDL/PDML.htm)
> 
> 注意
> PDML格式還沒有發行版,Wireshark執行PDML還處在測試階段,期望外來版本會有所變化。
**圖?5.14.?"Export as PDML File"對話框**

* **Export to file**:將包數據導出到
* **Packet Range**: 參見[第?5.8?節 “包范圍選項”](#calibre_link-106 "5.8.?包范圍選項")
上述對話框里沒有諸如Packet details選項,這是由于PDML格式約定的內容決定的。
### 5.6.6.?"Export selected packet bytes" 對話框
**圖?5.15.?"Export Selected Packet Bytes" 對話框**

* **Name:** 導出數據包為文件
* **Save in folder:**導出數據包到指定目錄
* **Browser for other folders** 通過瀏覽來指定導出數據的目錄。
### 5.6.7.?"Export Objects" 對話框
這個對話框是用來掃描當前打開包文件或者是正在捕捉中的包文件,將其中的對象,如HTML文檔,圖片文件,可執行文件等等任何可以通過HTTP傳輸的對象進行重組集合,讓你可以將他們保存刀磁盤。如果捕捉正在進行中,列表會在發現新對象之后的幾秒內立即更新。保存的對象不需要進行額外處理就可以被對應的查看工具打開,或者直接運行(如果它可以在Wireshark所在的平臺運行的話)。這項功能在GTK1下的Wireshark中無法使用。
**圖?5.16.?"Export Objects"對話框**

**各列說明**
Packet num
包含該對象數據的包的數目,有時候多個對象可能包含在同一個包里。
Hostname
作為服務器相應HTTP請求發送對象的主機的主機名。
Content Type
對象的HTTP內容類型
Bytes
對象的字節數
Filename
URL的最后一部分(最后一個"/"之后)。通常這部分是文件名,但有時是一個又常又復雜的字符串,這通常表明該文件是一個"HTTP POST"請求。(類似于填寫表單以后通過CGI提交后跳轉頁面的URL)
**按鈕說明:**
Help
打開本節的用戶手冊(5.6.7節?)
Close
關閉該對話框
Save As
用指定文件名保存當前選擇對象。默認文件名是filename列中顯示的對象文件名。
Save All
將列表中所有對象按filename列顯示名稱保存。系統會提示你選擇哪個目錄/文件夾保存他們。如果文件名在當前操作系統或者文件系統下不合法,Wireshark會提示錯誤,該對象不會被保存(但其他對象會被保存)。
## 5.7.?打印包
要打印包,選擇File菜單的"Print..."菜單項。這時會彈出如[圖?5.17 “ "Print" 對話框”](#calibre_link-125 "圖?5.17.? "Print" 對話框")所示的打印對話框。
### 5.7.1.?打印 對話框
**圖?5.17.? "Print" 對話框**

下面的字段在打印對話可用。
Printer
該字段包括一對互斥的單選鈕
Print Text
指定包打印為plain text格式
PostScript
在打印過程中使用PostScrtipt打印軟件生成打印輸出。[[15](#calibre_link-126)]
Output to file
打印為文件,文件名使用輸入的字段或者在瀏覽按鈕選擇。
如果你沒有選擇**Output to file**:復選框,你輸入字段的地方或Browse。。按鈕都是灰色。
Print command
設置打印時使用的命令
> 
> 注意
> 打印命令在Windows平臺不可用。
用于打印的命令通常是**lpr**.You would change it to specify a particular queue if you need to print to a queue other than the default.例如:
```
lpr -Pmypostscript
```
如果沒有選中**Output to file**,該字段將是灰色不可用的。
Packet Range
需要要被打印的包,參見:[第?5.8?節 “包范圍選項”](#calibre_link-106 "5.8.?包范圍選項")
Packet Format
選擇輸出文件的格式。你可以選擇包以何種方式打印包。見[圖?5.19 “"Packet Format"選項卡”](#calibre_link-127 "圖?5.19.?"Packet Format"選項卡")
[[15](#calibre_link-128)] 譯者注:此處需要說明的是,如果沒有打印機,或者不想打印,你應該在后面指定Output to file,指定打印輸出未知,另,out put to file輸出的后綴名是.out,如果想用acrobat導入,可以考慮將后綴名修改為.ps,這樣可以被直接識別,當然,直接把文件拖放到Acrobat Distiller也可以直接生成PDF文件。
另:使用PostScript輸出的文件具有良好的形式,比如在頁首會加上列名,而直接打印為print text卻沒有這樣的內容。
## 5.9.?包格式選項
包格式選項卡在很多輸出對話框都能看到,它可以指定包的那些部分會被輸出。
**圖?5.19.?"Packet Format"選項卡**

Packet summary line
導出包的摘要行,就是"Packet List"面板的內容
Packet Details
導出Packet Details樹
All collaspsed
"Packet Details"面板在"all collapsed"狀態下的所有信息(折疊所有分支)
As displayed
"Packet Details"面板當前狀態下的信息
All expanded
"Packet Details"面板"all expanded"狀態下的信息(展開所有分支)
Packet bytes
導出包字節,就是"Packet Bytes"面板的內容
Each Packet on a new page
輸出是每個包單獨一頁(例如,如果保存/打印成text文件,會在包之間加上分節符)