Sigar之python的基本使用
# cat ifconfig.py#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ldczz2008@163.com
import os
import sigar
sg = sigar.open()
def format_size(size):
return sigar.format_size(size)
# iflist是一个元组,是本机的网卡列表
iflist = sg.net_interface_list()
# 循环得到每个网卡的参数信息
for ifname in iflist:
ifconfig = sg.net_interface_config(ifname)
flags = ifconfig.flags()
encap = ifconfig.type()
hwaddr = ifconfig.hwaddr()
bcast = ifconfig.broadcast()
addr4 = ifconfig.address()
nmask = ifconfig.netmask()
mtu = ifconfig.mtu()
metric = ifconfig.metric()
if hwaddr == "00:00:00:00:00:00":
hwaddr = ""
else:
hwaddr = "HWaddr " + hwaddr
# 打印网卡基本信息
print "[ %s ], Link encap: %s, %s" % (ifname, encap, hwaddr)
print "inet addr:", addr4
print "Bcast: ", bcast
print "Mask: ", nmask
print "MTU: ", mtu
print "Metric: ", metric
# 获得网卡的状态值
# RX信息
# TX信息
ifstat = sg.net_interface_stat(ifname)
print "以下是网卡[ %s ]的RX统计信息" % ifname
print "\tRX packets:", ifstat.rx_packets()
print "\tErrors: ", ifstat.rx_errors()
print "\tDropped: ", ifstat.rx_dropped()
print "\tOverruns:", ifstat.rx_overruns()
print "\tFrame: ", ifstat.rx_frame()
print "以下是网卡[ %s ]的TX统计信息" % ifname
print "\tTX packets:", ifstat.tx_packets()
print "\tErrors: ", ifstat.tx_errors()
print "\tDropped: ", ifstat.tx_dropped()
print "\tOverruns:", ifstat.tx_overruns()
print "\tCarrier: ", ifstat.tx_carrier()
print "\tCollisions:", ifstat.tx_collisions()
print "\tRx bytes:", format_size(ifstat.rx_bytes())
print "\tTx bytes:", format_size(ifstat.tx_bytes())
sg.close()
页:
[1]