+import contextlib
+import socket
(
BLACK,
for arg in args:
ret.update(arg)
return ret
+
+
+def get_default_addr():
+ def is_ipv6_enabled():
+ try:
+ sock = socket.socket(socket.AF_INET6)
+ with contextlib.closing(sock):
+ sock.bind(("::1", 0))
+ return True
+ except (AttributeError, socket.error) as e:
+ return False
+
+ try:
+ return get_default_addr.result
+ except AttributeError:
+ result = '::' if is_ipv6_enabled() else '0.0.0.0'
+ get_default_addr.result = result
+ return result
+