On Wed, 21 Nov 2007 16:15:43 +0100, Gilles Ganault <[EMAIL PROTECTED]> wrote:
>Hello
>
>I need to get the local computer's IP address, ie. what's displayed
>when running "ifconfig" in Linux:
>
># ifconfig
>eth0      Link encap:Ethernet  HWaddr 00:15:58:A1:D5:6F
>          inet addr:192.168.0.79  Bcast:192.168.0.255
>Mask:255.255.255.0
>
>I know about socket.gethostbyname, but this relies on what's in
>/etc/hosts, and I'd rather have a more independent solution.
>
>What would be a good way to do this?

You can generally get the local address which will be used for traffic
to a particular host by getting ready to send traffic to it with a UDP
socket:

    >>> from socket import socket, SOCK_DGRAM, AF_INET
    >>> s = socket(AF_INET, SOCK_DGRAM)
    >>> s.connect(('google.com', 0))
    >>> s.getsockname()
    ('192.168.1.113', 43711)

Jean-Paul
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to