what is a good invalid IP address to use for unit tests?

≯℡__Kan透↙ 提交于 2019-12-29 18:19:41

问题


I am writing unit tests for a client library. I want to test connecting with an invalid port and an invalid ip. What is a good ip address to use that won't potentially be routed somewhere? I don't want to make any assumptions about the network the machine running the unit tests is on. LOCALHOST seems like a bad choice since that is the valid machine running the server component and I want to test an invalid port separately. Is there an INVALID-IP reserved somewhere in the IPv4 spec?


回答1:


According to RFC 5737:

The blocks 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2), and 203.0.113.0/24 (TEST-NET-3) are provided for use in documentation.

This means you can use pick an IP address from these ranges:

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



回答2:


If you're looking for a truly invalid IP address (as opposed to an unrouteable one), you can take advantage of the fact that the first byte of a Class A address cannot be 0.

For example:

0.42.42.42



回答3:


The answer from Jonathan (and it's comments) are good for IPv4

If your tests support IPv6 it has an explicit black hole you can use: 0100::/64 as defined in RFC 6666

It's tempting to use 254.254.254.254 since it's easy to remember, but on some platforms it gives a immediate "transmit failed. General Failure" rather than an actual timeout which may be an invalid unit test.




回答4:


There's 3 private IP blocks you can use for such things:

10/8 (10.0.0.0 -> 10.255.255.255) (an old school Class A netblock)

172.16/12 (172.16.0.0 -> 172.131.255.255

196.168/16 (192.168.0.0 -> 192.168.255.255) (an old school Class B netblock)




回答5:


254.254.254.254

Should be in the reserved for future use domain...

RFC 1700



来源:https://stackoverflow.com/questions/10456044/what-is-a-good-invalid-ip-address-to-use-for-unit-tests

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!