python获取本地的IP地址及mac地址

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)


       
2.       还有一种Linux下的方法可以用的是:

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




你可能感兴趣的:(python)