| # this comes from this stack overflow post: |
| # http://stackoverflow.com/a/1947766/725944 |
| |
| # module for getting the lan ip address of the computer |
| |
| import os |
| import socket |
| |
| if os.name != "nt": |
| import fcntl |
| import struct |
| def get_interface_ip(ifname): |
| sckt = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) |
| return socket.inet_ntoa(fcntl.ioctl( |
| sckt.fileno(), |
| 0x8915, # SIOCGIFADDR |
| 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 |