Host.py 630 B

123456789101112131415161718192021222324
  1. # Future imports for Python 2.7, mandatory in 3.0
  2. from __future__ import division
  3. from __future__ import print_function
  4. from __future__ import unicode_literals
  5. import socket
  6. import chutney.Util
  7. @chutney.Util.memoized
  8. def is_ipv6_supported():
  9. """Return true iff ipv6 is supported on this host."""
  10. try:
  11. s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
  12. s.bind(("::1", 0))
  13. s.listen(128)
  14. a = s.getsockname()
  15. s2 = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
  16. s2.settimeout(1)
  17. s2.connect(a)
  18. return True
  19. except socket.error:
  20. return False