收集服务器网卡和IP信息
Python2环境
#!/usr/bin/python2
# -*- coding:utf-8 -*-
import os,sys
import socket, fcntl, struct
def get_devs():
data = os.popen("ifconfig |awk \'{print $1}\' |grep -Ei \'eth[0-9]{1}|bond\' |sed \'s/:$//g\'").read()
return data
def get_ips(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])
if __name__ == \'__main__\':
dic = {}
devs_info = get_devs()
for item in devs_info.split():
try:
ip = get_ips(item)
except IOError, e:
#print("Error -> %s." % e)
continue
dic[item] = ip
#print(len(dic))
for k in dic:
print("%s --> %s" % (k, dic[k]))
Python3环境
#!/usr/bin/python3
# -*- coding:utf-8 -*-
import netifaces
ipList = []
for dev in netifaces.interfaces():
if 2 in netifaces.ifaddresses(dev):
ip=netifaces.ifaddresses(dev)[2][0][\'addr\']
if ip not in ipList and ip != \'127.0.0.1\':
ipList.append(ip)
print(ipList)