如何打印 public 网络接口名称?
How to print public network interface names?
我想知道我的centos box是哪个接口public。我正在使用以下代码获取所有接口的列表:
import psutil
psutil.net_io_counters(pernic=True)
它给了我如下的输出:-
{'ens4': snetio(bytes_sent=451795206850898, bytes_recv=282993376354381, packets_sent=2467559041353, packets_recv=1909886336553, errin=0, errout=0, dropin=0, dropout=0),
'ens5': snetio(bytes_sent=686206758798, bytes_recv=468470603173, packets_sent=1233102227, packets_recv=1545708349, errin=0, errout=0, dropin=0, dropout=0),
'lo': snetio(bytes_sent=23027715005, bytes_recv=23027715005, packets_sent=44148705, packets_recv=44148705, errin=0, errout=0, dropin=0, dropout=0)}
我想知道哪个是public哪个是私有的:
这里我知道ens4是public,ens5是private,lo是loopback
如何使用 python 做到这一点?
截至目前,我正在使用一个 bash 命令,它给我输出:
ip -o addr show scope global | awk '{split(, a, "/"); print " : "a[1]}' | grep -v -E '192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]' | awk '{print '}
输出:
ens4
如何将 bash 命令转换为 python 中的内容?
一种解决方案是,使用 os:
调用命令
import os
os.system('ip -o addr show scope global | awk \'{split(, a, "/"); print " : "a[1]}\' | grep -v -E \'192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\' | awk \'{print \'}')
我想知道我的centos box是哪个接口public。我正在使用以下代码获取所有接口的列表:
import psutil
psutil.net_io_counters(pernic=True)
它给了我如下的输出:-
{'ens4': snetio(bytes_sent=451795206850898, bytes_recv=282993376354381, packets_sent=2467559041353, packets_recv=1909886336553, errin=0, errout=0, dropin=0, dropout=0),
'ens5': snetio(bytes_sent=686206758798, bytes_recv=468470603173, packets_sent=1233102227, packets_recv=1545708349, errin=0, errout=0, dropin=0, dropout=0),
'lo': snetio(bytes_sent=23027715005, bytes_recv=23027715005, packets_sent=44148705, packets_recv=44148705, errin=0, errout=0, dropin=0, dropout=0)}
我想知道哪个是public哪个是私有的:
这里我知道ens4是public,ens5是private,lo是loopback
如何使用 python 做到这一点?
截至目前,我正在使用一个 bash 命令,它给我输出:
ip -o addr show scope global | awk '{split(, a, "/"); print " : "a[1]}' | grep -v -E '192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]' | awk '{print '}
输出:
ens4
如何将 bash 命令转换为 python 中的内容?
一种解决方案是,使用 os:
调用命令import os
os.system('ip -o addr show scope global | awk \'{split(, a, "/"); print " : "a[1]}\' | grep -v -E \'192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\' | awk \'{print \'}')