posts - 241,  comments - 116,  trackbacks - 0
Java实现ping用Java来Ping机器,有两个做法。一个是传统的调用命令行执行Ping命令的做法。这种做法的好处是速度快,比较可靠。缺点 是,不同的操作系统,甚至Windows的不同版本,其执行和返回结果格式都可能不同,造成跨平台的不便以及代码的啰嗦。第二个方法自然就是使用大家都熟 知的Java 5提供的InetAddress的isReachable方法。这个函数并非使用ICMP的ping,而是仅仅用TCP连一下7号端口而已。参考代 码:public static boolean ping(String ip) {淘宝女装夏装新款
        try {
            InetAddress ipaddress = InetAddress.getByName(ip);
            return ipaddress.isReachable(2000);
        } catch (Exception ex) {
            ex.printStackTrace();
            return false;
        }
    }
SNMP ping

所谓SNMP Ping其实就是用SNMP去get一个非常基本的OID看对方有无反应。如果能够返回数据,说明这是一个SNMP节点,可以通过SNMP配合MIB库去 获取更多的业务数据。例如磁盘、CPU、内存、端口力量等等基本的信息,都有相关的SNMP MIB进行定义。

SnmpContextv2c context = new SnmpContextv2c(ip, 161);
context.setCommunity("public");
BlockPdu pdu = new BlockPdu(context);
pdu.setRetryIntervals(new int[] { 1000 });
String sysUpTime = "1.3.6.1.2.1.1.3.0";
pdu.addOid(sysUpTime);
Object result = pdu.getResponseVariable();
代码中用v2c,并假设community是public,超时时间1秒。获取sysUpTime也就是设备启动时间。如果有返回,认为节点存在且SNMP协议已启动。
posted on 2011-05-20 14:56 墙头草 阅读(2530) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
人人游戏网 软件开发网 货运专家