jarod8016b 发表于 2018-8-7 11:46:04

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())
  
    print
  

  
sg.close()
页: [1]
查看完整版本: Sigar之python的基本使用