部分代码
import os
import time
import psutil
import sys
import atexit
import datetime
import re
import array
import socket
import struct
import fcntl
def check_linked(eth):
"""check hw(eth0) net physics conection"""
buff = array.array('i', [0x0000000a, 0x00000000])
addr, length = buff.buffer_info()
arg = struct.pack("Pi", addr, length)
data = (eth + '\0'*16)[:16] + arg
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
SIOCETHTOOL = 0x8946
try:
fcntl.ioctl(sock.fileno(), SIOCETHTOOL, data)
except IOError, e:
print("check %s lined failed , and error is %s" %(eth,str(e)))
sock.close()
return False
sock.close()
return bool(buff.tolist()[1])
#function of net state
def GetNetState():
dir_net_info = psutil.net_if_addrs()
list_net_key = list(dir_net_i