正常情况下,如果想要查看电脑的网卡IP地址或是MAC地址,直接通过界面找到网卡进行查看就有了,亦或是通过命令如linux的ifconfig得到IP等信息,那么本节教大家如何通过python的方式获取网卡的IP/MAC信息。
1.1.1 系统:
Ubuntu 16.04.6 LTS
Windows 10 x64
1.1.2 开发工具:
pycharm 专业版
备注:专业版支持本地远程linux调试。
本次只需要用到3个模块就搞定,但也是挺费劲的咯。
Linux系统:
import platform
platform.system()
'Linux' #返回结果
Windows系统:
import platform
platform.system()
'Windows' #返回结果
外置模块,安装方式请参考网上,此处忽略(很简单)。
用处:用于收集网络接口等信息(IP/地址/网关)。
netiface模块定了3个函数:
def gateways(*args, **kwargs): #获取网关
代码块
def ifaddresses(*args, **kwargs): #获取IP信息
代码块
def interfaces(*args, **kwargs): #获取接口ID
代码块
先看下地址族:
#!/usr/bin/env python3
#-*- coding:UTF-8 -*-
#欢迎关注微信公众号:点滴技术
#以下在Linux环境下演示
from netifaces
import pprint
pp = pprint.PrettyPrinter(indent=4) #这里使用pprint输出会更直观
pp.pprint(netifaces.address_families)
#返回结果:
{
0: 'AF_UNSPEC',
1: 'AF_FILE',
2: 'AF_INET', #ipv4地址
3: 'AF_AX25',
4: 'AF_IPX',
5: 'AF_APPLETALK',
6: 'AF_NETROM',
7: 'AF_BRIDGE',
8: 'AF_ATMPVC',
9: 'AF_X25',
10: 'AF_INET6', #ipv6地址
11: 'AF_ROSE',
12: 'AF_DECnet',
13: 'AF_NETBEUI',
14: 'AF_SECURITY',
15: 'AF_KEY',
16: 'AF_NETLINK',
17: 'AF_PACKET', #ipv4的MAC地址
18: 'AF_ASH',
19: 'AF_ECONET',
20: 'AF_ATMSVC',
22<