我正在为客户端库编写单元测试。我想测试使用无效端口和无效 ip 的连接。什么是一个不会被路由到某个地方的好 IP 地址?我不想对运行单元测试的机器所在的网络做出任何假设。LOCALHOST 似乎是一个糟糕的选择,因为它是运行服务器组件的有效机器,我想单独测试一个无效端口。IPv4 规范中的某处是否保留了 INVALID-IP?
问问题
34745 次
5 回答
76
根据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
于 2012-05-04T20:59:52.337 回答
12
于 2012-05-04T21:00:16.673 回答
4
乔纳森的回答(以及它的评论)对 IPv4 有好处
如果您的测试支持 IPv6,则它有一个明确的黑洞,您可以使用:如RFC 66660100::/64
中所定义
使用 254.254.254.254 很诱人,因为它很容易记住,但在某些平台上,它会立即给出“传输失败。一般故障”,而不是可能是无效单元测试的实际超时。
于 2019-04-03T17:25:14.870 回答
2
您可以将 3 个私有 IP 块用于此类事情:
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 类网络块)
于 2012-05-04T21:00:23.620 回答
0
于 2012-05-04T20:59:19.297 回答