レンジピンガーを使用してWindowsで複数のIPアドレスにpingを実行する方法

最新のWindows PCでIPv4アドレス範囲にpingを実行するには、サブネットを特定し、アドレスのリストを作成して、それぞれのアドレスにICMPエコー要求を送信します。以前のIPアドレス範囲Pingerは「Ping Range」オプションを使用してこれを実現していましたが、その古いダウンロードと互換性に関する記述は現在も有効かどうか確認できません。以下のPowerShell 7の方法では、認証済みのローカルネットワークをチェックし、各アドレスを個別に報告します。

IPアドレス範囲ピングツールが何をしたか

この記事では、Ping範囲スキャンを実行して応答するホストを一覧表示するポータブルなWindowsユーティリティについて説明しています。記事ではWindows XP、Vista、Server 2003/2008、Windows 7に対応していると記載されていますが、イメージとダウンロードに関する記述は現在では信頼できる情報源とは言えません。発行元によるダウンロードやWindowsのサポート状況を確認できなかったため、サードパーティのミラーリンクをたどるのではなく、当該アプリケーションはレガシーソフトウェアとして扱ってください。

Windowsには依然としてpingpingコマンドが含まれており、PowerShellではIPアドレスの範囲を生成して、各IPアドレスに結果を関連付けることができます。pingはICMP応答のみをテストするものであり、すべてのデバイスを識別したり、特定のアプリケーションに到達可能であることを証明したりするものではありません。

スキャンする前にIPv4範囲を確認してください

  1. コマンドプロンプトを開いて実行しますipconfig。
  2. アクティブなイーサネットまたはWi-Fiアダプタを見つけてください。そのIPv4アドレスとサブネットマスクをメモしてください。デフォルトゲートウェイをサブネットの代わりとして使用しないでください。
  3. 例えば、192.168.1.10サブネットマスク付きのアドレス255.255.255.0は一般的な/24ネットワークです。以下のサンプルは、192.168.1.1を介してホストアドレスをチェックします192.168.1.254。
コマンドプロンプトに、プライベートネットワークのIPv4アドレス、サブネットマスク、デフォルトゲートウェイを含むipconfigの出力結果を表示しています。
アクティブアダプタのIPv4アドレスとサブネットマスクを使用して、チェックが許可されている範囲を特定します。

例示/24はすべてのネットワークに当てはまるわけではありません。サブネットマスクが異なる場合は、まず正しいアドレス範囲を計算し、スクリプト内のプレフィックスとホスト番号の両方を調整してください。スキャンは、所有しているアドレス、または管理権限を持つアドレスに対してのみ実行してください。

PowerShell 7 を使用して /24 範囲に ping を実行する

この例ではForEach-Object -Parallel、PowerShell 7 で導入された とTest-Connectionタイムアウト オプションを使用します。PowerShell 7 は Windows PowerShell 5.1 と並行してインストールされます。このスクリプトを実行するには PowerShell 7 が必要です。必要に応じて、Microsoft のPowerShell 7 インストール ガイドを参照してください。Microsoft は、並列ループとそのスロットル制限、およびTest-Connectionパラメーターについてドキュメント化しています。

  1. スタートメニューからPowerShell 7を開きます。タイトルには「Windows PowerShell」や「PowerShell ISE」ではなく、「PowerShell 7」と表示されているはずです。
  2. 認証済みネットワークが異なるプレフィックスを使用している場合は、サンプルプレフィックスを置き換えて/24から、このブロックを貼り付けて実行してください。
PowerShell 7 ウィンドウで、サンプル /24 ローカルネットワークスキャン用に 192.168.1 プレフィックスを設定しています。
例のプレフィックスを、ipconfigで識別される/24サブネットに一致するように変更してください。
$prefix = '192.168.1' # Replace with your authorized /24 prefix
$results = 1..254 | ForEach-Object -Parallel {
    $ip = '{0}.{1}' -f $using:prefix, $_
    $reachable = Test-Connection -TargetName $ip -IPv4 -Count 1 -TimeoutSeconds 1 -Quiet
    [pscustomobject]@{
        IPAddress = $ip
        Reachable = $reachable
    }
} -ThrottleLimit 32

$results | Sort-Object { [version]$_.IPAddress } | Format-Table -AutoSize

このループは、254個のサンプルホストアドレスそれぞれに1回ずつpingを送信します。-TimeoutSeconds 1は各テストの待機時間を制限し、 は-ThrottleLimit 32並列実行されるチェックの数を制限します。より小さな範囲の場合は、1..254を必要なホスト番号に置き換えてください。ターゲットリストを修正せずに、このループを異なるサブネットサイズに拡張しないでください。

記録を残すには、表が表示された後、以下を実行してください。

$results | Export-Csv -Path "$env:USERPROFILE\Desktop\ping-sweep.csv" -NoTypeInformation

結果を正しく読み取ってください

PowerShell 7 の結果テーブルは、4 つのプライベート IPv4 アドレスと、到達可能性の値が True または False で対応付けられています。
表示されている値は例です。スキャン出力には、テストされたアドレスと、それぞれのアドレスがICMPに応答したかどうかが一覧表示されます。

Trueは、このスキャン中にアドレスから ICMP エコー応答が返されたことを意味します。Falseは、PowerShell がタイムアウト前に応答を受信しなかったことを意味します。これは、デバイスの電源がオフになっていることを証明するものではありません。ホストファイアウォール、ネットワークファイアウォール、アクセス制御ルール、ワイヤレスクライアントの分離、スリープ状態、ルーティングの問題、またはサブネットの誤りにより、応答が妨げられる可能性があります。デバイスがアクティブであっても、ping に応答しないように設定されている場合もあります。

出力結果は、完全なインベントリではなく、迅速な到達可能性リストとして使用してください。このスクリプトはIPv4のみをチェックし、デバイス名、開いているポート、またはサービスは識別しません。CSVファイルを保存すると、応答するアドレスと応答しないアドレスの両方が含まれるため、後で結果を比較できます。

住所または特定のサービスを選択してください

コマンドプロンプトで一度だけ確認する場合は、Windows のドキュメントに記載されている/nカウントおよび/w待機オプションを使用してください。

ping /n 1 /w 800 192.168.1.10
コマンドプロンプトに、800ミリ秒の待機時間でpingリクエストを1回実行し、192.168.1.10からの応答を例示した例を示します。
このサンプルは、単一アドレスへのpingが成功した場合のフォーマットを示しています。この応答はあくまで例示であり、ネットワークの性能を測定するものではありません。

Microsoftのpingリファレンスには、これらのオプションについて説明されています。ホストがタイムアウトした場合は、アドレスとサブネットを確認し、ターゲットのICMPポリシーと、介在するファイアウォールルールを確認してください。pingを機能させるためだけにファイアウォールを全体的に無効にすることは避け、ポリシーで許可されている場合は、ネットワーク管理者に必要なトラフィックのみを許可するように依頼してください。

ウェブサイト、ファイル共有、その他のサービスが利用可能かどうかが本当の問題である場合は、実際の TCP ポートもテストしてください。たとえば、Test-NetConnection -ComputerName 192.168.1.10 -Port 443ポート 443 で動作することが想定されるサービスの場合などです。Microsoft は、ping は基本的な接続チェックにすぎず、リスニング サービスへのアクセスを確認する必要がある場合は、アプリケーション レイヤーのチェックを推奨しています。TCP /IP のトラブルシューティング ガイダンスとTest-NetConnectionリファレンスを参照してください。

公式資料

コメントを残す

FotoSketcherで写真を絵画、スケッチ、漫画に変換

FotoSketcherで写真を絵画、スケッチ、漫画に変換

FotoSketcher Studioを使えば、写真を絵画、鉛筆画、漫画に変換できます。エフェクトの選択方法、プレビューの調整方法、作品の保存方法を学びましょう。

オーディオ識別ツールで音声ファイルを詳細に分析・識別する

オーディオ識別ツールで音声ファイルを詳細に分析・識別する

オーディオ識別子がビットレート、エンコーダー、タグについて何を明らかにするのか、従来のワークフローがどのように機能するのか、そして現在利用可能なツールの中で、ファイルの検査や楽曲の識別に使えるものはどれなのかを学びましょう。

My Photo Index:Windows用オープンソース写真整理ツール

My Photo Index:Windows用オープンソース写真整理ツール

My Photo Indexは、ローカル画像のタグ付け、評価、閲覧を行うための、Windows向けの旧来の写真カタログツールです。その機能、互換性の制限、および現在もサポートされている代替ツールについてご確認ください。

Attribute Changerを使用してファイルとフォルダの属性、日付、時刻を変更する

Attribute Changerを使用してファイルとフォルダの属性、日付、時刻を変更する

Attribute Changerを使用して、Windowsファイルの属性とタイムスタンプを編集したり、JPEG EXIF写真の日付を更新したり、バッチ変更を安全にプレビューしたりする方法を学びましょう。

Windows 10で各モニターに異なる壁紙を設定する方法

Windows 10で各モニターに異なる壁紙を設定する方法

Windows 10の各モニターに個別の壁紙を設定し、ディスプレイを識別し、画像のフィットを調整し、モニターの選択肢が見つからない場合のトラブルシューティングを行います。

pViewer:最小限の画像ビューアとマンガ&コミックリーダー

pViewer:最小限の画像ビューアとマンガ&コミックリーダー

pViewerの機能、写真モードとコミックモードの仕組み、ダウンロードすべきWindows版、そして旧バージョンと改訂版の違いについて学びましょう。

NeoDownloader:パラメータ設定とウェブサイトからの画像の一括ダウンロード

NeoDownloader:パラメータ設定とウェブサイトからの画像の一括ダウンロード

NeoDownloaderプロジェクトの作成方法、クロール範囲の選択方法、画像フィルタと保存先の設定方法、バッチダウンロードの確認方法を学びましょう。

Windows 7および8でホットキーを使って次のデスクトップ背景に切り替える方法

Windows 7および8でホットキーを使って次のデスクトップ背景に切り替える方法

Windows 7または8用のスライドショーを設定し、簡単なVBScriptショートカットを作成して、キーボードショートカットキーを割り当てて次の壁紙に進めるようにします。

XnConvert:エフェクトの適用と画像フォーマットの一括変換

XnConvert:エフェクトの適用と画像フォーマットの一括変換

XnConvertを使えば、エフェクトの適用、写真のリサイズ、画像フォーマットの一括変換が可能です。出力設定の選択、編集内容のプレビュー、オリジナル画像の保護も行えます。

PickMeApp: 保存された設定でWindowsプログラムを転送する

PickMeApp: 保存された設定でWindowsプログラムを転送する

PickMeAppを使って、インストール済みのWindowsアプリケーションを別のPCに移行しましょう。TAPパッケージの仕組み、設定の取得方法、転送できない可能性のある項目について学びます。