Supports IPv4 and IPv6.
"""
+ if not ip or '\x00' in ip:
+ # getaddrinfo resolves empty strings to localhost, and truncates
+ # on zero bytes.
+ return False
try:
res = socket.getaddrinfo(ip, 0, socket.AF_UNSPEC,
socket.SOCK_STREAM,
self.assertTrue(not is_valid_ip('localhost'))
self.assertTrue(not is_valid_ip('4.4.4.4<'))
self.assertTrue(not is_valid_ip(' 127.0.0.1'))
+ self.assertTrue(not is_valid_ip(''))
+ self.assertTrue(not is_valid_ip(' '))
+ self.assertTrue(not is_valid_ip('\n'))
+ self.assertTrue(not is_valid_ip('\x00'))