Linux系统中使用Python检测网卡是否启用并正常连接网线

网上查了很多关于检测网卡状态的资料,Linux本身不管是ubuntu还是centos都有命令来实现这些检测,但是今天我们通过纯python程序来实现这个功能。

这个函数主要的功能是检测一个网卡是否有网线插入,并且处于正常的开启状态。

 import socket
import array
import struct
import fcntl
def get_link(ifname):
     buff = array.array('i', [0x0000000a, 0x00000000])
     addr, length = buff.buffer_info()
     arg = struct.pack("Pi", addr, length)
     data = (ifname + '\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 str(e)
     print bool(buff.tolist()[1])
     sock.close()
if __name__=='__main__':
     get_link('eth1')

No comments yet.

Leave a comment

Comment form

All fields marked (*) are required

返回顶部
跳到底部