linux上查看网络设备可使用:ifconfig -a,现在需要使用python脚本识别网络设备,并获得信息。查到一个比较好用的模块,可以用来获取本机网卡信息的第三方库,如ip地址, MAC地址等等信息,支持Windows, Linux和MacOS。
1、netifaces安装
pip install netifaces
某些嵌入式设备无法安装,可下载源码安装。可以在Python官网上去下载对应的源码:https://pypi.python.org/pypi/netifaces。当前的版本是0.10.4。参考下面的步骤进行安装:
tar xvzf netifaces-0.10.4.tar.gz
cd netifaces-0.10.4
sudo python setup.py install
PS:通过源码安装此模块,需要安装python-dev开发包,可以通过“apt-get install python-dev”进行安装。已经安装python的忽略此步骤。
若报错:ImportError: No module named setuptools,先安装 setuptools,再执行netifaces安装。
sudo apt-get install python-setuptools
2、代码示例
import pprint
import netifaces
def test():
pp = pprint.PrettyPrinter(indent=4)
ret = netifaces.interfaces() # 返回结果,ubuntu系统网卡ID
print("ret:", ret)
pp.pprint(netifaces.ifaddresses("lo"))
输出结果:
根据结果就可以获得结构化设备信息了。
应用:配置usb0网络设备ip:sudo ifconfig usb0 192.168.1.10 up
参考文章:
1、Python实用模块(十四)netifaces