Javaはpingとsnmppingを実現します.
1437 ワード
回転:http://www.blogjava.net/javagrass/archive/2011/05/20/350688.html
一.Java実現
Javaでpingを実現するにはJavaでPingマシンを作る方法が二つあります.一つは従来のコマンドラインでPingコマンドを実行する方法です.このやり方の長所はスピードが速くて、信頼できるところです.欠点は、異なるオペレーティングシステム、さらにはWindowsの異なるバージョンでも、その実行とリターンの結果のフォーマットは異なるかもしれません.プラットフォームをまたぐ不便さとコードの煩雑さを引き起こします.第二の方法はもちろん、みんながよく知っているJava 5が提供するInetAddresのisreachable方法を使うことです.この関数はICMPのpingを使うのではなく、TCPで7番のポートを繋げるだけです.参照コード:
SNMP Pingとは、SNMPを使って、非常に基本的なOIDをゲットして、相手の反応を見ます.データを返すことができれば、SNMPノードであることを示し、SNMPを介してMIBライブラリと協働してより多くのトラフィックデータを取得することができる.例えば、磁気ディスク、CPU、メモリ、ポートパワーなどの基本的な情報は、SNMP MIBによって定義されています.
一.Java実現
Javaでpingを実現するにはJavaでPingマシンを作る方法が二つあります.一つは従来のコマンドラインでPingコマンドを実行する方法です.このやり方の長所はスピードが速くて、信頼できるところです.欠点は、異なるオペレーティングシステム、さらにはWindowsの異なるバージョンでも、その実行とリターンの結果のフォーマットは異なるかもしれません.プラットフォームをまたぐ不便さとコードの煩雑さを引き起こします.第二の方法はもちろん、みんながよく知っているJava 5が提供するInetAddresの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を使って、非常に基本的な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();
コードはv 2 cで、communityはpublicで、タイムアウト時間は1秒です.sysUpTime、つまりデバイス起動時間を取得します.戻りがある場合、ノードが存在すると考えられ、SNMPプロトコルが起動された.