Permalink
Browse files

added localinterfaces to utils

  • Loading branch information...
1 parent 96098a7 commit 0641149f37f1de87743c4338cda4d3715b9da38d @minrk committed Oct 13, 2010
Showing with 40 additions and 0 deletions.
  1. +40 −0 IPython/utils/localinterfaces.py
View
40 IPython/utils/localinterfaces.py
@@ -0,0 +1,40 @@
+"""Simple utility for building a list of local IPs using the socket module.
+This module defines two constants:
+
+LOCALHOST : The loopback interface, or the first interface that points to this
+ machine. It will *almost* always be '127.0.0.1'
+
+LOCAL_IPS : A list of IP addresses, loopback first, that point to this machine.
+"""
+#-----------------------------------------------------------------------------
+# Copyright (C) 2010 The IPython Development Team
+#
+# 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
+
+#-----------------------------------------------------------------------------
+# Code
+#-----------------------------------------------------------------------------
+
+LOCAL_IPS = []
+try:
+ LOCAL_IPS = socket.gethostbyname_ex('localhost')[2]
+except socket.gaierror:
+ pass
+
+try:
+ LOCAL_IPS.extend(socket.gethostbyname_ex(socket.gethostname())[2])
+except socket.gaierror:
+ pass
+
+# include all-interface aliases: 0.0.0.0 and ''
+LOCAL_IPS.extend(['0.0.0.0', ''])
+
+LOCALHOST = LOCAL_IPS[0]

0 comments on commit 0641149

Please sign in to comment.