How can I find local IP addresses (i.e. 192.168.x.x or 10.0.x.x) in Python platform independently and using only the standard library?
import socket socket.gethostbyname(socket.gethostname())
This won't work always (returns
127.0.0.1 on machines having the hostname in
127.0.0.1), a paliative would be what gimel shows, use
socket.getfqdn() instead. Of course your machine needs a resolvable hostname.
I just found this but it seems a bit hackish, however they say tried it on *nix and I did on windows and it worked.
import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("126.96.36.199", 80)) print(s.getsockname()) s.close()
This assumes you have an internet access, and that there is no local proxy.