python实现查询mac号对应的OUI厂商信息
来源:互联网 发布:椭圆曲线密码算法属于 编辑:程序博客网 时间:2024/05/23 19:17
心血来潮,突然想到做一个根据MAC号查询对应厂商信息的程序。方法无外几种:
1、存储所有OUI信息表,根据MAC查询。需要存储介质进行存储。
2、使用网络服务查询。需要联网。
ieee上有个OUT文本文件:http://standards-oui.ieee.org/oui/oui.txt,里面包括了很多OUT信息,但不确定是不是最新的。
很多网站支持在线查询MAC对应厂商信息。比如wireshark:https://www.wireshark.org/tools/oui-lookup.html,支持MAC、厂商名称字符串查询。而这个:http://www.macvendorlookup.com/mac-address-api地址则支持生成JSON、XML格式的数据。
下面使用python解析JSON格式的数据。源码如下:
#!/usr/bin/python3# encoding: utf-8# 根据mac号查询对应的公司名字# TODO 解析一个conf文件,而不是写死mac# 注意:如果使用urllib库,源码文件不能是urllib.py。。。。import urllib.requestimport jsonmac_addr = ["a4:44:d1", "08:00:20", "fc:d7:33", "da:a1:19"]def simple_test(): for i in range(len(mac_addr)): oui_url = ("http://www.macvendorlookup.com/api/v2/" + mac_addr[i]) request = urllib.request.Request(oui_url) response = urllib.request.urlopen(request) #print(response.read()) # 打印网页源码 #print(response.read()) encodedjson = bytes.decode(response.read()) # bytes to string #print(encodedjson) if (encodedjson == ''): #print("empty....") continue decodejson = json.loads(encodedjson) #d1 = json.dumps(decodejson,sort_keys=True,indent=4) #print(d1) #print(type(decodejson)) # 这时已经是一个list # 打印需要的字段 print("mac地址:" + mac_addr[i] + "\t" + decodejson[0]["country"] + " 公司:" + decodejson[0]["company"] + "\t地址:" + decodejson[0]["addressL3"])#### mainif __name__ == '__main__': print("url test") simple_test()
注:好像源码给出的网站访问不太正常,我经常连接失败。
0 0
- python实现查询mac号对应的OUI厂商信息
- mac地址对应的厂商
- IEEE规定的厂商对应MAC地址
- SQL实现查询栏目对应的所有子栏目信息
- python实现解析oui.txt并抽取MAC前缀及组织名称
- 根据mac地址查询厂商
- 网卡MAC地址查询厂商
- 修改arp表中其它设备对应的mac地址(python实现)
- python查询IP对应的地理位置
- arp-scan的又一个黑科技 mac地址oui自定义
- USB product id / vendor id 对应厂商查询
- python_批量获取指定文件夹下的所有文件的厂商信息
- 查询网卡MAC地址所属生产厂商(ieee.org)
- 得到网卡与生产厂商的对应表
- 直接返回查询信息对应的表头信息-----setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
- C#获取机器信息(IPV4.IPV6.MAC.硬盘信息,机器厂商/型号)
- Mybatis实现用户所对应资源的查询
- python实现手机号归属地相关信息查询
- 欢迎使用CSDN-markdown编辑器
- NavigationBar 隐藏和显示带来的问题和解决办法
- 【oracle】DECODE ,NVL,NVL2的用法
- java rsa加密密码错误
- Dll
- python实现查询mac号对应的OUI厂商信息
- iOS开发进阶 - 使用shell脚本自动打包上传到fir.im上
- 使用Gradle构建多个不同applicationId包
- js实现完美身份证号有效性验证
- xml转义符使用
- Android 性能优化之使用线程池处理异步任务
- Executors.newFixedThreadPool / Executors.newScheduledThreadPool 例子
- 【java学习】ping不同的网络并返回网络状态
- Leetcode: Find Minimum in Rotated Sorted Array