萬盛學電腦網

 萬盛學電腦網 >> 系統工具 >> 在 Wireshark 抓包中顯示 snmp mib 名

在 Wireshark 抓包中顯示 snmp mib 名

  Wireshark 是最富盛名的開源抓包工具了,在電信網管開發的日常工作中是不可或缺的,經常需要抓包分析。那有沒有辦法可以在抓到的包中直接顯示 snmp mib 的名字,而不是 OID 呢?辦法當然是有的,也很簡單,在官方的文檔裡面就有說明了。這裡講下實際配置步驟:

  1. 把 mib 文件放到 “C:Program FilesWiresharksnmpmibs” 目錄下。

  2. 打開 “%APPDATA%Wiresharksmi_modules” 文件,在裡面按原有的格式,添加mib名字。

  3. 修改 Wireshark 的配置,選中 “Enable OID resolution”,”Suppress SMI errors”(如下圖)。修改之後關閉再重新打開 Wireshark 就生效了。

在 Wireshark 抓包中顯示 snmp mib 名  三聯

  注意事項:

  1. 如果看到的配置界面跟上面的不一樣的話,是 Wireshark 版本太低了,升級到最新的版本即可。

  2. 不是所有的 mib 文件都能被正確的解析,這是一個已知問題,因為其用的開源的 mib 解析模塊 libsmi 有問題。如果發現加了某幾個 mib 之後 Wireshark 就啟動不了了,那就還是把改動回退吧。

  參考閱讀:1,2,3。

  另外,因為要求 mib 文件的名字必須是 mib 模塊的名字,但是存在文件名和模塊名不一致的情況,寫了個 groovy 腳本,對指定目錄下的 mib 文件進行重命名:

  import java.util.regex.*

  def dir = new File('''C:Program FilesWiresharksnmpmibs''')

  def pattern = ~/(?ms).*^s*([w-]+)s*DEFINITIONS ::= BEGINs*$.*/

  dir.eachFileRecurse{ f ->

  if ( f.file && f.name.endsWith(".mib") ) {

  Matcher m = pattern.matcher( f.getText() );

  if (m.matches()) {

  f.renameTo( f.parentFile.path + "" + m[0][1] )

  println '"' + m[0][1] + '"'

  }

  }

 

  }

copyright © 萬盛學電腦網 all rights reserved