Windows下2种方法:
1.
使用拨号上网的话,一般都有一个本地ip和一个外网ip,使用python可以很容易的得到这两个ip
使用gethostbyname和gethostbyname_ex两个函数可以实现
import socket
localIP = socket.gethostbyname(socket.gethostname())#这个得到本地ip
print "local ip:%s "%localIP
ipList = socket.gethostbyname_ex(socket.gethostname())
for i in ipList:
if i != localIP:
print "external IP:%s"%i
第二个版本:
import socket
myname = socket.getfqdn(socket.gethostname( ))
myaddr = socket.gethostbyname(myname)
import socket
import fcntl
import struct
def get_ip_address(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])
>>> get_ip_address('lo')
'127.0.0.1'
>>> get_ip_address('eth0')
'38.113.228.130'
3.从网上搜到一种简单的方法:
>>> ip = os.popen("/sbin/ifconfig | grep 'inet addr' | awk '{print $2}'").read()
>>> ip = ip[ip.find(':')+1:ip.find('\n')]
4.python 获取mac地址简单方法:
>>> import uuid
>>> node=uuid.getnode()
>>> mac = uuid.UUID(int = node).hex[-12:]
>>> print mac