##// END OF EJS Templates
Merge pull request #3802 from ivanov/doc-to-rst...
Merge pull request #3802 from ivanov/doc-to-rst This renames our documentation files to .rst so that it renders nicely on GitHub The docs build just fine with these changes, it'd be good to get this in before any more changes are made to the docs

File last commit:

r10737:c2f04517
r11764:79d36b57 merge
Show More
localinterfaces.py
55 lines | 1.9 KiB | text/x-python | PythonLexer
MinRK
added localinterfaces to utils
r3143 """Simple utility for building a list of local IPs using the socket module.
This module defines two constants:
Bernardo B. Marques
remove all trailling spaces
r4872 LOCALHOST : The loopback interface, or the first interface that points to this
MinRK
added localinterfaces to utils
r3143 machine. It will *almost* always be '127.0.0.1'
LOCAL_IPS : A list of IP addresses, loopback first, that point to this machine.
W. Trevor King
utils.localinterfaces: Add PUBLIC_IPS to consolidate socket logic...
r9250
PUBLIC_IPS : A list of public IP addresses that point to this machine.
Use these to tell remote clients where to find you.
MinRK
added localinterfaces to utils
r3143 """
#-----------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2010-2011 The IPython Development Team
MinRK
added localinterfaces to utils
r3143 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import socket
W. Trevor King
utils.localinterfaces: Uniquify LOCAL_IPS...
r9248 from .data import uniq_stable
MinRK
added localinterfaces to utils
r3143 #-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
LOCAL_IPS = []
try:
LOCAL_IPS = socket.gethostbyname_ex('localhost')[2]
MinRK
catch socket.error in utils.localinterfaces...
r10737 except socket.error:
MinRK
added localinterfaces to utils
r3143 pass
W. Trevor King
utils.localinterfaces: Add PUBLIC_IPS to consolidate socket logic...
r9250 PUBLIC_IPS = []
MinRK
added localinterfaces to utils
r3143 try:
MinRK
try hostname.local if hostname points to loopback
r10420 hostname = socket.gethostname()
PUBLIC_IPS = socket.gethostbyname_ex(hostname)[2]
# try hostname.local, in case hostname has been short-circuited to loopback
if not hostname.endswith('.local') and all(ip.startswith('127') for ip in PUBLIC_IPS):
PUBLIC_IPS = socket.gethostbyname_ex(socket.gethostname() + '.local')[2]
MinRK
catch socket.error in utils.localinterfaces...
r10737 except socket.error:
MinRK
added localinterfaces to utils
r3143 pass
W. Trevor King
utils.localinterfaces: Add PUBLIC_IPS to consolidate socket logic...
r9250 else:
PUBLIC_IPS = uniq_stable(PUBLIC_IPS)
LOCAL_IPS.extend(PUBLIC_IPS)
MinRK
added localinterfaces to utils
r3143
# include all-interface aliases: 0.0.0.0 and ''
LOCAL_IPS.extend(['0.0.0.0', ''])
W. Trevor King
utils.localinterfaces: Uniquify LOCAL_IPS...
r9248 LOCAL_IPS = uniq_stable(LOCAL_IPS)
MinRK
added localinterfaces to utils
r3143 LOCALHOST = LOCAL_IPS[0]