使用 python 控制台命令确定活动 NIC 地址
Determine Active NIC address using python console commands
我正在尝试找到一个活动的 NIC,一个活动的 NIC 是命令将为我 return UP 的一个。
在我的命令中:
# cat /sys/class/net/eth0/operstate
我 return UP
在另一个命令中,我输入:
# cat /sys/class/net/eth1/operstate
我得到一个向下的值
总的来说,我有 4 个 eth。我基本上必须使用命令来确定 UP 或 DOWN
/sys/class/net/eth[0|1|2|3]/operstate = up | down
我希望能够编写一个程序,在其中我能够return eth[0|1|2|3] 值为 UP。
到目前为止,这是我所拥有的:
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 循环中添加 which eth 编号。也许有更好的方法来解决这个问题。
在此先感谢您的帮助
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)
我正在尝试找到一个活动的 NIC,一个活动的 NIC 是命令将为我 return UP 的一个。
在我的命令中:
# cat /sys/class/net/eth0/operstate
我 return UP
在另一个命令中,我输入:
# cat /sys/class/net/eth1/operstate
我得到一个向下的值 总的来说,我有 4 个 eth。我基本上必须使用命令来确定 UP 或 DOWN
/sys/class/net/eth[0|1|2|3]/operstate = up | down
我希望能够编写一个程序,在其中我能够return eth[0|1|2|3] 值为 UP。
到目前为止,这是我所拥有的:
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 循环中添加 which eth 编号。也许有更好的方法来解决这个问题。
在此先感谢您的帮助
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)