function readVarbinds (buffer, varbinds) {
buffer.readSequence (); while (1) {
buffer.readSequence ();
var oid = buffer.readOID ();
var type = buffer.peek (); if (type == null)
break; var value; if (type == ObjectType.Boolean) {
value = buffer.readBoolean ();
} else if (type == ObjectType.Integer) {
value = readInt (buffer);
} else if (type == ObjectType.OctetString) {
value = buffer.readString (null, true);
//添加
if(value.length === 6){
//关键点:mac转换成字符串的话是乱码。
//如果str的长度是2表示2个中文,如果长度是6的话,检查是否是字母或数字
var str = value.toString();
if(str.length === 6 && !/[0-9A-Fa-f]{6}/.test(str)){
value = value.toString('hex').toUpperCase();
}
}
} else if (type == ObjectType.Null) {
buffer.readByte ();
buffer.readByte ();
value = null;
} else if (type == ObjectType.OID) {
value = buffer.readOID ();
} else if (type == ObjectType.IpAddress) {
var bytes = buffer.readString (ObjectType.IpAddress, true);
if (bytes.length != 4)
//添加
value = '';
//注释
//throw new ResponseInvalidError ("Length '" + bytes.length + "' of IP address '" + bytes.toString ("hex") + "' is not 4");
else value = bytes[0] + "." + bytes[1] + "." + bytes[2] + "." + bytes[3];
} else if (type == ObjectType.Counter) {
value = readUint (buffer);
} else if (type == ObjectType.Gauge) {
value = readUint (buffer);
} else if (type == ObjectType.TimeTicks) {
value = readUint (buffer);
} else if (type == ObjectType.Opaque) {
value = buffer.readString (ObjectType.Opaque, true);
} else if (type == ObjectType.Counter64) {
value = readUint64 (buffer);
} else if (type == ObjectType.NoSuchObject) {
buffer.readByte ();
buffer.readByte ();
value = null;
} else if (type == ObjectType.NoSuchInstance) {
buffer.readByte ();
buffer.readByte ();
value = null;
} else if (type == ObjectType.EndOfMibView) {
buffer.readByte ();
buffer.readByte ();
value = null;
} else {
throw new ResponseInvalidError ("Unknown type '" + type
+ "' in response");
} varbinds.push ({
oid: oid,
type: type,
value: value
});
}
}

解决net-snmp正确输出MAC地址和判断空的IP地址的更多相关文章

  1. PHP获取IP地址的方法,防止伪造IP地址注入攻击

    PHP获取IP地址的方法 /** * 获取客户端IP地址 * <br />来源:ThinkPHP * <br />"X-FORWARDED-FOR" 是代理 ...

  2. The three day 给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本

    """ 给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本. 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 ...

  3. 使用django开发论坛输出调试信息时附加远程客户端IP地址!

    前言 最近使用django开发了个匿名社区(哈士奇社区 4nmb.com),但是有个问题一直困扰我半天,就是如何在django调试信息上输出远程客户端的真实IP地址,在网上找了很多资料也没见人遇到过, ...

  4. 为什么有mac地址还学要有IP地址??

    历史原因:早期的以太网只有集线器 ,没有交换机,所以发出去的包能被以太网内的所有机器监听到,因此要附带上MAC地址,每个机器只需要接受与自己MAC地址相匹配的包. 个人感觉上面的说法并不是太准确.找明 ...

  5. Mac中如何查看电脑的IP地址

    方法一:使用ifconfig命令 方法二:在charles中查看 Charles 的顶部菜单的 “Help”->”Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图 ...

  6. 网吧局域网里的设置外网IP地址、设置内网IP地址、限制内网速度和路由器共享

    现在啊,网吧的需求越来越高,同时在经济比较充裕的情况下,作为网吧的老板可能希望打造全千兆的网吧,让每个进入网吧的人都能充分体验高速的感觉,当然更重要的是在同行竞争中处于上游,特别是对网络游戏爱好者的吸 ...

  7. linux,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python程序,linux shell 批量ping)

    本文中的脚本适用范围: 1)检测某些IP地址是否被占用: 2)检测网络中某些设备是否存活: 3)在分配新的ip地址之前,批量检测环境中是否存在冲突的机器 以上检测基于ICMP Ping报文,要求所有的 ...

  8. (转)怎样查看局域网中自己的IP地址和其他电脑的IP地址?

    开始菜单->运行->打cmd,回车->再弹出的黑框里打ipconfig -all,回车显示的IP Address就是你的ip地址看局域网的电脑的ip用软件比较方便,比如p2p终结者, ...

  9. 淘宝IP地址库获取到省市IP地址

    http://ip.aliyun.com/index.html https://ispip.clang.cn/ https://github.com/Pingze-github/local-ips 1 ...

随机推荐

  1. sql 参数

    sqlserver :传参数是“@” oracle:是“:” mysql:是“?”

  2. Ubuntu Codeblocks Installation

    Download and Installation sudo add-apt-repository ppa:damien-moore/codeblocks sudo apt update sudo a ...

  3. 动态加载JS过程中如何判断JS加载完成

    在正常的加载过程中,js文件的加载是同步的,也就是说在js加载的过程中,浏览器会阻塞接下来的内容的解析.这时候,动态加载便显得尤为重要了,由于它是异步加载,因此,它可以在后台自动下载,并不会妨碍其它内 ...

  4. 使用XAML在WPF项目中承载ArcGIS Engine地图控件开发

    原文 http://blog.csdn.net/flexmapserver/article/details/5868882 用Windows Form进行ArcGIS Engine二次开发时常见的形式 ...

  5. WPF & ArcGIS Engine三维开发入门攻略

    原文 http://www.cnblogs.com/Realh/archive/2010/12/14/1906112.html 前些日子在做ESRI的开发大赛,从刚开始接触ArcGIS Engine( ...

  6. python处理.seq文件

    # Deal with .seq format for video sequence # Author: Kaij # The .seq file is combined with images, # ...

  7. Lisp之根源

    原文:http://www.paulgraham.com/rootsoflisp.html 约翰麦卡锡于1960年发表了一篇非凡的论文,他在这篇论文中对编程的贡献有如 欧几里德对几何的贡献.1 他向我 ...

  8. 【转】 linux内核移植和驱动添加(三)

    原文网址:http://blog.chinaunix.net/uid-29589379-id-4708909.html 原文地址:linux内核移植和驱动添加(三) 作者:genehang 四,LED ...

  9. 【DP问题集】动态规划试题

    1.背包问题 给定n种物品和一背包.物品i的重量是wi,其价值为pi,背包的容量为C.问应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 分析: ①每个物品只有两种选择,要么就是塞到包里面, ...

  10. 什么是优先级队列(priority queue)?

    有时候我们需要在某个元素集合中找到最小值和最大值 .优先级队列抽象数据(Priority Queue ADT)模型是我们能够使用的方法之一,这是一种支持插入和删除最小值(DeleteMin)或者最大值 ...