def disambiguate_ip_address(ip, location=None): """turn multi-ip interfaces '0.0.0.0' and '*' into a connectable address Explicit IP addresses are returned unmodified. Parameters ---------- ip : IP address An IP address, or the special values 0.0.0.0, or * location: IP address, optional A public IP of the target machine. If location is an IP of the current machine, localhost will be returned, otherwise location will be returned. """ if ip in {'0.0.0.0', '*'}: if not location: # unspecified location, localhost is the only choice ip = localhost() elif is_public_ip(location): # location is a public IP on this machine, use localhost ip = localhost() elif not public_ips(): # this machine's public IPs cannot be determined, # assume `location` is not this machine warnings.warn("IPython could not determine public IPs", RuntimeWarning) ip = location else: # location is not this machine, do not use loopback ip = location return ip
def disambiguate_ip_address(ip, location=None): """turn multi-ip interfaces '0.0.0.0' and '*' into a connectable address Explicit IP addresses are returned unmodified. Parameters ---------- ip : IP address An IP address, or the special values 0.0.0.0, or * location: IP address or hostname, optional A public IP of the target machine, or its hostname. If location is an IP of the current machine, localhost will be returned, otherwise location will be returned. """ if ip in {'0.0.0.0', '*'}: if not location: # unspecified location, localhost is the only choice return localhost() elif not is_ip(location): if location == socket.gethostname(): # hostname matches, use localhost return localhost() else: # hostname doesn't match, but the machine can have a few names. location = ip_for_host(location) if is_public_ip(location): # location is a public IP on this machine, use localhost ip = localhost() elif not public_ips(): # this machine's public IPs cannot be determined, # assume `location` is not this machine warnings.warn("IPython could not determine public IPs", RuntimeWarning) ip = location else: # location is not this machine, do not use loopback ip = location return ip
def ip_is_local(ip): return localinterfaces.is_public_ip(ip) or localinterfaces.is_local_ip( ip)
def ip_is_local(ip): """Returns True if `ip` is considered local to this server, False otherwise. """ return localinterfaces.is_public_ip(ip) or localinterfaces.is_local_ip( ip)
def ip_is_local(ip): return localinterfaces.is_public_ip(ip) or localinterfaces.is_local_ip(ip)