Windows getting local ip address

Fredrik Lundh fredrik at pythonware.com
Wed Mar 22 10:55:49 EST 2006


"SolaFide" wrote:

> On Linux, it is a simple matter to get the local ip address with
> system.os("ifconfig >> /tmp/ip"); ip=open("/tmp/ip").readlines(), etc.

    ip = os.popen("ifconfig").readlines()

is a bit more convenient.

> How can I do this with Windows?

the command is called "ipconfig" in windows.

there's also

    >>> import socket
    >>> socket.gethostbyname(socket.gethostname())
    '1.2.3.4'
    >>> socket.gethostbyname_ex(socket.gethostname())
    ('bender.shiny.com', ['bender'], ['1.2.3.4'])
    >>> socket.getaddrinfo(socket.gethostname(), 0)
    [(2, 1, 0, '', ('1.2.3.4', 0)), (2, 2, 0, '', ('1.2.3.4', 0))]

etc.  if you're behind a firewall/NAT etc and you want your "public IP",
you can do something like:

    >>> import re, urllib
    >>> ip = urllib.urlopen('http://checkip.dyndns.org').read()
    >>> re.search("(\d+\.\d+\.\d+.\d+)", ip).group()
    '4.3.2.1'

hope this helps!

</F>






More information about the Python-list mailing list