我正在为一个客户端库编写单元测试。我想测试连接到无效端口和无效IP地址。有没有一个合适的IP地址可以使用,不会被路由到某个地方?我不想对运行单元测试的机器所在的网络做任何假设。LOCALHOST似乎是一个糟糕的选择,因为它是运行服务器组件的有效机器,而我想单独测试一个无效端口。在IPv4规范中是否有保留的INVALID-IP呢?
我正在为一个客户端库编写单元测试。我想测试连接到无效端口和无效IP地址。有没有一个合适的IP地址可以使用,不会被路由到某个地方?我不想对运行单元测试的机器所在的网络做任何假设。LOCALHOST似乎是一个糟糕的选择,因为它是运行服务器组件的有效机器,而我想单独测试一个无效端口。在IPv4规范中是否有保留的INVALID-IP呢?
Jonathan的答案(以及评论)适用于IPv4。
如果您的测试支持IPv6,那么可以使用显式黑洞:0100::/64
,这在RFC 6666中有定义。
使用254.254.254.254很诱人,因为它易于记忆,但在某些平台上,它会立即显示“传输失败。常规故障”而不是实际超时,这可能是无效的单元测试。
以下是可用于此类事物的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类网段)
2001:db8::/32
也应该包含在这个答案中。 - kasperd198.18.0.0/15
可能是更好的选择。 - kasperd