使用python控制台命令确定活动的NIC地址

时间:2016-06-09 03:29:36

标签: python console command line nic

我正在尝试找到一个活动的网卡,一个活动的网卡就是命令将为我返回的网络。

在我的命令中:

# cat /sys/class/net/eth0/operstate

我返回的值为UP

在另一个命令中,我输入:

# cat /sys/class/net/eth1/operstate

我得到一个DOWN值 总的来说,我有4个eth。我基本上必须使用命令来确定UP或DOWN

/sys/class/net/eth[0|1|2|3]/operstate    = up | down

我希望能够编写一个程序,我将能够返回UP [0 | 1 | 2 | 3]值。

到目前为止,这就是我所拥有的:

mylist= [0,1,2,3]
for x in mylist:
       with open('/sys/class/net/'x'/operstate') as f:
              mac_eth0= f.read().rstrip()
       if mac_eth0 == "up"
                print "it is %s" %(mac_eth0)

当我运行此代码时,它告诉我有一个错误:

File "tes.py", line 5
  with open('/sys/class/net/'x'/operstate') as f:
                             ^
 Syntax Error: invalid syntax

我只是不确定如何在for循环中添加哪个eth号。也许有更好的方法来解决这个问题。

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

x是包含值的变量:1或2或3或4。 您将x视为字符串的代码段。 此外,代码段尝试将单引号括在生成错误的单引号内。

修改如下,它应该有效。

此外,上述代码中存在语法错误 - 在' if'之后错过了冒号。子句。

mylist= [0,1,2,3]
for x in mylist:
       with open('/sys/class/net/{}/operstate'.format(x)) as f:
              mac_eth0= f.read().rstrip()
       if mac_eth0 == "up":
                print "it is %s" %(mac_eth0)