web-dev-qa-db-ja.com

単体テストに使用する適切な無効なIPアドレスは何ですか?

クライアントライブラリの単体テストを書いています。無効なポートと無効なIPでの接続をテストしたい。潜在的にどこかにルーティングされない、使用に適したIPアドレスは何ですか?ユニットテストを実行しているマシンが存在するネットワークについては、何も仮定しません。 LOCALHOSTは、サーバーコンポーネントを実行している有効なマシンであり、無効なポートを個別にテストしたいため、悪い選択のようです。 IPv4仕様のどこかにINVALID-IPが予約されていますか?

42
Ryan R.

RFC 5737 によると:

ブロック192.0.2.0/24(TEST-NET-1)、198.51.100.0/24(TEST-NET-2)、および203.0.113.0/24(TEST-NET-3)は、ドキュメントで使用するために提供されています。

これは、次の範囲からIPアドレスを選択して使用できることを意味します。

  • 192.0.2.0-192.0.2.255
  • 198.51.100.0-198.51.100.255
  • 203.0.113.0-203.0.113.255
50
Jonathan

(ルーティングできないアドレスとは対照的に)本当に無効なIPアドレスを探している場合は、 クラスA アドレスの最初のバイトが0にできないという事実を利用できます。 。

例えば:

0.42.42.42
11

Jonathanからの回答(およびコメント)はIPv4に適しています

テストがIPv6をサポートしている場合、使用できる明示的なブラックホールがあります:0100::/64RFC 6666 で定義されている

覚えやすいので254.254.254.254を使用するのは魅力的ですが、一部のプラットフォームでは、無効な単体テストである可能性のある実際のタイムアウトではなく、すぐに「送信に失敗しました。一般的な失敗」を示します。

3
Chris Rudd

このようなことに使用できるプライベートIPブロックは3つあります。

10/8(10.0.0.0-> 10.255.255.255)(古い学校のクラスAネットブロック)

172.16/12(172.16.0.0-> 172.131.255.255

196.168/16(192.168.0.0-> 192.168.255.255)(古い学校のクラスBネットブロック)

2
Marc B

254.254.254.254

将来の使用ドメイン用に予約されている必要があります...

RFC 17

1
William Dwyer