您的位置:首页 > 编程语言 > Python开发

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

2012-08-10 14:57 666 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: