Home > ruby-bulkping

ruby-bulkping

Ruby-bulkping is a project mainly written in C and RUBY, based on the View license.

Bulk ping sender for Ruby

  • BulkPing

    複数のホスト宛の ping をまとめて扱える Ruby エクステンションです。

  • 動作環境

    今のところ Debian GNU/Linux (lenny) と Ruby 1.8.x の組み合わせ のみ動作を確認しています。

  • インストール

    RubyGems を使います。

    gem build bulkping-gemspec

    gem install bulkping-0.1.1.gem

  • リファレンス

    BulkPing::ICMP.new BulkPing::ICMP オブジェクトを生成します。

    BulkPing::ICMP#ping(targets) 指定された targets に向けて ICMP echo リクエストを送信します。

    targets には対象 IP アドレスの配列を渡します。 IP アドレスの記述方法には以下の 3 つがあります。

  - IP アドレス   例: '192.168.0.1'   - IP アドレス範囲   例: '192.168.0.1-192.168.0.100'   - ネットワーク   例: '192.168.0.0/24'  

BulkPing::ICMP#ping(targets) {|host, result| ... } ping を送信した各アドレスについて、アドレスと結果をブロックに適用します。

BulkPing::ICMP#alive?(target) ping の結果、target から応答があったか否かを返します。

BulkPing::ICMP#alive ping の結果、応答があったアドレスの配列を返します。

BulkPing::ICMP#dead ping の結果、応答がなかったアドレスの配列を返します。

  • サンプル

    require 'rubygems' require 'bulkping'

    bp = BulkPing::ICMP.new bp.ping('192.168.0.1', '192.168.0.2', '192.168.0.3', '192.168.0.4')

    if bp.alive?('192.168.0.1') puts "192.168.0.1 is alive" else puts "192.168.0.1 is dead" end

    puts "-- alive --" puts bp.alive puts "-- dead --" puts bp.dead

    bp.ping('192.168.0.1-192.168.0.100') puts "-- alive --" puts bp.alive

    bp.ping('192.168.0.0/24') puts "-- alive --" puts bp.alive

    bp.ping('192.168.0.1', '192.168.0.2', '192.168.0.3') do |addr, result| puts "addr=#{addr}, result=#{result}" end

  • 実行例

    192.168.0.1 is alive -- alive -- 192.168.0.1 -- dead -- 192.168.0.2 192.168.0.3 192.168.0.4 -- alive -- 192.168.0.1 -- alive -- 192.168.0.0 192.168.0.1 192.168.0.31 192.168.0.51 192.168.0.61 192.168.0.62 192.168.0.63 192.168.0.64 192.168.0.151 192.168.0.161 192.168.0.255 addr=192.168.0.1, result=true addr=192.168.0.2, result=false addr=192.168.0.3, result=false

  • ライセンス

    Copyright (c) 2010 Satoshi Ebisawa [email protected] All rights reserved.

    詳しくは付属の LICENSE ファイルを参照してください。

Previous:Kit