bping — Windows向け一括Pingスキャナ

Tool

概要

bpingはWindows向けのバッチPing(複数IP一括スキャン)ツールで、GUIとコマンドラインの両モードを提供します。GUIでは0–255のIPオクテットをマトリクス表示し、色で「未スキャン」「活発(占有)」「空き(未占有)」を直感的に示します。内部ではpythonpingライブラリを使い、システムのpingコマンドに依存せずにICMPエコーを送受信して応答を判定します。マルチスレッド(デフォルト50スレッド)で並列に処理するため、/24などの範囲を高速に走査できます。コマンドライン出力はファイル保存が可能で、スレッド数やタイムアウトの調整もサポートします。

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 4
  • ファイル数: 7
  • メインの言語: Python

主な特徴

  • PyQt5ベースのGUIでIPをマトリクス表示、視覚的に空き/占有を確認可能
  • pythonpingを使用し、Windowsの組込みpingコマンドに依存しないICMP送受信
  • マルチスレッド並列スキャン(デフォルト50スレッド、ユーザー調整可)
  • コマンドラインモードでのスキャンと結果ファイル出力に対応

技術的なポイント

bpingの技術的な核は「pythonpingによるICMP送信」と「マルチスレッドによる並列化」、そして「PyQt5での非同期UI更新」です。pythonpingを使うことで、外部プロセス(Windowsのping)を呼び出すオーバーヘッドやプラットフォーム依存の出力パースを避けられます。これにより送信パケットのタイムアウト設定やリトライ制御がプログラム内で細かく扱え、応答判定が安定します。スキャンは複数スレッド(ThreadPoolExecutorや独自スレッド管理)でIPごとのICMP送信を並列化し、キューやセマフォで同時接続数を制御します。GUI側はメインスレッドで動作するため、ワーカーが検出結果を返す際はスレッドセーフな方法(Qtのシグナル/スロット、またはスレッドセーフキュー経由のポーリング)でマトリクスを更新し、UIフリーズを防止します。色分け表示(灰=未走査、赤=応答あり、緑=応答なし)により視認性を高め、/24スキャンのような大量のセルも素早く確認できます。注意点としては、ICMPパケットの送信は環境によって管理者権限を要する場合がある点、ネットワーク負荷やファイアウォールのICMP制限によりスキャン結果が影響を受ける可能性がある点です。build.shは配布・ビルド用の簡易スクリプトと推測され、実行ファイル化やパッケージ準備に利用されることが多い構成です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • bping.py: file
    • メインの実行ファイル。GUI起動、コマンドラインパラメータ処理、スキャン制御を含む想定。
  • build.sh: file
    • 簡易ビルド/パッケージ化用スクリプト(ラッパーや配布準備に利用)。
  • requirements.txt: file
    • 依存ライブラリ(PyQt5、pythonping など)を列挙。
  • img/: directory(スクリーンショット等を含む) …他 2 ファイル

各ファイルの役割(想定)

  • bping.py: スキャンのエントリポイント。CLIパーサー、スレッドプール、結果収集、GUI起動ロジックを持つ。
  • requirements.txt: pipでの一括インストールを想定。環境はPython 3.9+が推奨。
  • build.sh: pyinstallerやzip化のラッパーとして、配布用バイナリを生成する役割が考えられます。

使い方(補足)

  • GUI起動: python bping.py でデフォルトの 192.168.1.0/24 をスキャン。UIでCIDRやスレッド数を調整して開始。
  • CLI起動: python bping.py 192.168.1.0/24 -w 100 -o result.txt のように実行して結果をファイルに保存可能。
  • 依存関係: pip install -r requirements.txt でインストール。Windows環境での実行を想定しているが、pythonpingやPyQt5のサポートするプラットフォームなら他OSでも動作する可能性あり。

まとめ

Windows環境で使いやすく、ICMPを直接扱うことで高速にサブネットの占有状況を可視化する実用的なツールです。

リポジトリ情報:

READMEの抜粋:

bping

Windows 下的批量 Ping 网段工具,支持 GUI 表格矩阵显示与命令行模式。可快速扫描指定网段,展示 0–255 的 IP 占用状态:

  • 灰色:未扫描
  • 红色:活跃(占用)
  • 绿色:空闲(未占用)

功能特性

  • 多线程并发扫描(默认 50 线程,可调)
  • GUI 视图使用矩阵显示IP占用
  • 命令行模式支持输出结果到文件

环境要求

  • 不依赖 Windows 系统 ping 命令
  • Python 3.9+(推荐)
  • 依赖:PyQt5、pythonping

安装依赖

pip install -r requirements.txt

运行(GUI)

python bping.py
  • 默认网段:192.168.1.0/24
  • 可在界面中设置网段与线程数,点击“开始扫描”

运行(命令行)

python bping.py 192.168.1.0/24 -w 100 -o result.t...