SoupCalc

ランダムIPアドレスジェネレーター

ランダムIPアドレスジェネレーターとは

ランダムIPアドレスジェネレーターは、インターネットプロトコルのアドレッシング方式の構文規則に従った文字列を生成します。DHCPサーバーに問い合わせたり、割り当てデータベースを照会したり、ネットワークをスキャンしたりすることはありません。代わりに、プロトコル標準で定義された形式に従ってバイトを組み立て、その結果を人間が読める表記で表示します。

このツールは、実際のホストを表さずに見た目上は有効なプレースホルダーアドレスを必要とする開発者、テスター、教育者向けです。一般的な用途には、テストデータベースへのデータ投入、サンプルログエントリの生成、パーサーのストレステスト、ドキュメントでのネットワーク概念の説明などがあります。出力は合成されたものであるため、ネットワーク上のデバイスを対象にしたり、その情報を取得したりすることはありません。

IPv4アドレスの形式

IPv4アドレスはRFC 791の仕様に従います。各アドレスは32ビットの符号なし整数であり、慣例的にドットで区切られた4つの10進オクテットとして表記されます。各オクテットは0から255までの範囲内でなければならず、標準的なドット付き10進表記では先頭のゼロは使用されません。

ジェネレーターは、暗号論的乱数ソースから4つの独立したバイトを取得し、それぞれをドットで結合した10進整数として出力することでIPv4アドレスを生成します。結果は常に基本的な形式チェックを通過します。つまり、4つのグループがあり、それぞれが0から255の範囲の数値です。例としては、10.47.182.9、203.0.113.55、192.168.1.100などがあります。

32ビット空間全体には約43億のアドレスが含まれます。均一な乱数ソースを使用するジェネレーターは、この空間から偏りなくサンプリングしますが、その出力からは、そのアドレスが割り当て済みか、予約済みか、到達可能かについては分かりません。

IPv6 アドレス形式

RFC 4291 で定義される IPv6 アドレッシングアーキテクチャは、128 ビットの識別子を使用します。テキスト表現では 128 ビットを 16 ビットずつ 8 つのグループに分割し、それぞれをコロンで区切った 1〜4 桁の小文字の 16 進数として記述します。このジェネレーターは各グループ内の先頭のゼロを除去しますが、ダブルコロンによる圧縮は行いません。

ジェネレーターは、ランダムな 16 バイトを取得し、それらを 8 つの 16 ビットワードにグループ化し、各ワードを先頭のゼロを除いた小文字の 16 進数として整形することで IPv6 アドレスを生成します。使用する英数字は 0~9 および a~f です。典型的な出力は 2001:db8:85a3:0:0:8a2e:370:7334 のようになります。

128 ビットのアドレス空間は非常に広大で、約 340 澗個のアドレスが存在します。この空間全体にわたる一様ランダムサンプリングでは、特定のアドレスが 2 回出現する可能性は極めて低いですが、IPv4 と同様に、ランダムであることはそのアドレスが未割り当てであることや、実際のネットワークで安全に使用できることを意味しません。

内部的なランダム性の仕組み

ジェネレーターは、実行環境が提供する暗号論的に安全な疑似乱数生成器からバイトを取得します。ブラウザ環境では Web Crypto API がオペレーティングシステム由来の乱数を提供します。各呼び出しで生成されるバイトは、テストデータ生成に十分な予測困難性を備えています。

IPv4 の場合、4 バイトが取得され、4 つのオクテットに直接対応します。IPv6 の場合、16 バイトが取得され、8 つの 16 ビットグループに組み合わされます。ジェネレーターは、フィルタリング、割り当てテーブルとの照合、予約範囲に対する検証を行いません。乱数ソースが返した値を整形するだけです。

このアプローチにより、各アドレス空間内のすべてのアドレスが等しい確率で選択されます。その代わり、出力にはマルチキャスト、ループバック、リンクローカル、ドキュメンテーションプレフィックスなど、パブリックインターネットでの通常利用を意図していない範囲のアドレスが含まれる可能性があります。

動作例

ツールに IPv4 アドレスと IPv6 アドレスをそれぞれ 1 つ生成させる場面を考えます。以下では、内部で何が起こり、結果をどう解釈するかを順に説明します。

IPv4 の場合、オペレーティングシステムの乱数ソースが 192、0、2、1 の 4 バイトを返したとします。ジェネレーターはこれらをドット付き十進表記の文字列 192.0.2.1 に整形します。このアドレスは 192.0.2.0/24 ブロックに含まれており、IANA が RFC 5737 でドキュメントおよびサンプルコード用に指定したものです。このアドレスは形式としては有効ですが、実際の宛先として使用してはなりません。

IPv6 の場合、乱数ソースが 8 つの 16 ビットワード(0x2001、0x0db8、6 つのゼロ値、そして最後に 0x0001)を返したとします。ジェネレーターは各ワード内の先頭のゼロを除去し、:: による圧縮を行わずに 8 つのグループを連結し、2001:db8:0:0:0:0:0:1 を生成します。このアドレスは 2001:db8::/32 に含まれており、RFC 3849 によって予約された IPv6 ドキュメント用プレフィックスです。IPv4 の例と同様に、このアドレスは構文的には正しいものの、サンプル専用に予約されています。

これら 2 つの出力は、ジェネレーターがドキュメント用範囲を優先していることを示すものではありません。重要な点を説明するために選んだ例です。一様にサンプリングする場合、予約済みアドレスを含むあらゆるアドレスが出現し得ます。このツールはアドレスの割り当て状況を判断せず、形式だけを生成します。

精度と制限事項

このジェネレーターは常に構文的に有効な IP アドレスを生成します。すべての IPv4 の結果は、0 から 255 の範囲内のちょうど 4 つのオクテットを持ちます。すべての IPv6 の結果はちょうど 8 つのグループを持ち、各グループは 0 から ffff の範囲を表す 1〜4 桁の小文字の 16 進数です。書式は決定的で、関連 RFC に基づく有効な非圧縮表現です。

しかし、構文レベルでの有効性は、特定の目的への適合性と同じではありません。このジェネレーターは、アドレスがパブリックインターネット上でルーティング可能か、プライベートまたは予約済みの範囲に属しているか、組織に割り当てられているか、現在ホストによって使用中かを確認しません。特定のカテゴリのアドレスを必要とする用途では、IANA の特別目的レジストリに照らして結果をフィルタリングしてください。

複数回の生成にわたる一意性は保証されません。各生成は独立しているため、同じアドレスが複数回出現する可能性があります。特に IPv4 ではアドレス空間が小さく、衝突が統計的に起こり得ます。一意なアドレスを必要とする場合は、以前の出力を追跡し、衝突時に再生成する必要があります。

このツールは逆引き DNS ルックアップ、whois クエリ、地理位置情報の取得を行いません。アドレスを誰が所有しているか、どこに位置しているか、ping に応答するかを判断できません。これは純粋なフォーマットユーティリティであり、ネットワーク偵察ツールではありません。

情報源

IPv4 アドレスの形式と意味は、Internet Engineering Task Force が 1981 年 9 月に公開したインターネットプロトコル標準 RFC 791 で規定されています。IPv6 のアドレッシングアーキテクチャとテキスト表現は RFC 4291 で定義されています。

特別目的 IPv4 アドレスブロックの正式なレジストリは、Internet Assigned Numbers Authority が IANA IPv4 Special-Purpose Address Registry で管理しています。このレジストリは、どの範囲がプライベート利用、ループバック、ドキュメント、ベンチマーク、その他の特別目的のために予約されているかを記録しています。ジェネレーターの出力からこれらの範囲を除外する必要がある場合は、このレジストリを直接参照してください。

編集記録

本記事は、ランダム IP アドレスジェネレーターがどのように動作し、どのような形式規則に従い、その出力が何を表し何を表さないのかについて、技術的に正確な説明を提供するために執筆されました。IPv4 および IPv6 アドレス構文の説明は、現在の IETF 標準を参照しています。動作例では、一様ランダムサンプリングが予約済みアドレスを生成し得るという原理を示すために、ドキュメント用範囲のアドレスを使用しています。精度と制限事項のセクションでは、構文的有効性と運用上の適合性との境界を明確にしています。

著者:SoupCalc 編集チーム 最終確認日:2026年8月11日