Created
September 3, 2017 15:14
-
-
Save volf52/354f707d83f9586c74944501695b0c97 to your computer and use it in GitHub Desktop.
Get IP address of host
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import socket | |
if os.name != "nt": | |
import fcntl | |
import struct | |
def get_interface_ip(ifname): | |
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', | |
ifname[:15]))[20:24]) | |
def get_lan_ip(): | |
ip = socket.gethostbyname(socket.gethostname()) | |
if ip.startswith("127.") and os.name != "nt": | |
interfaces = [ | |
"eth0", | |
"eth1", | |
"eth2", | |
"wlan0", | |
"wlan1", | |
"wifi0", | |
"ath0", | |
"ath1", | |
"ppp0", | |
] | |
for ifname in interfaces: | |
try: | |
ip = get_interface_ip(ifname) | |
break | |
except IOError: | |
pass | |
return ip | |
if __name__ == "__main__": | |
print get_lan_ip() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment