在 Wireshark 抓包中显示 snmp mib 名

Wireshark 是最富盛名的开源抓包工具了,在电信网管开发的日常工作中是不可或缺的,经常需要抓包分析。那有没有办法可以在抓到的包中直接显示 snmp mib 的名字,而不是 OID 呢?办法当然是有的,也很简单,在官方的文档里面就有说明了。这里讲下实际配置步骤:

1. 把 mib 文件放到 “C:\Program Files\Wireshark\snmp\mibs” 目录下。

2. 打开 “%APPDATA%\Wireshark\smi_modules” 文件,在里面按原有的格式,添加mib名字。

3. 修改 Wireshark 的配置,选中 “Enable OID resolution”,”Suppress SMI errors”(如下图)。修改之后关闭再重新打开 Wireshark 就生效了。

配置 Wireshark


注意事项:

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

2. 不是所有的 mib 文件都能被正确的解析,这是一个已知问题,因为其用的开源的 mib 解析模块 libsmi 有问题。如果发现加了某几个 mib 之后 Wireshark 就启动不了了,那就还是把改动回退吧。

参考阅读:123


另外,因为要求 mib 文件的名字必须是 mib 模块的名字,但是存在文件名和模块名不一致的情况,写了个 groovy 脚本,对指定目录下的 mib 文件进行重命名:

import java.util.regex.*
def dir = new File('''C:\Program Files\Wireshark\snmp\mibs''')
def pattern = ~/(?ms).*^\s*([\w\-]+)\s*DEFINITIONS ::= BEGIN\s*$.*/
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] + '"'
		}
	}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值