当前位置:   article > 正文

python实现查询mac号对应的OUI厂商信息_python 通过mac地址查厂家

python 通过mac地址查厂家

心血来潮,突然想到做一个根据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格式的数据。源码如下:

  1. #!/usr/bin/python3
  2. # encoding: utf-8
  3. # 根据mac号查询对应的公司名字
  4. # TODO 解析一个conf文件,而不是写死mac
  5. # 注意:如果使用urllib库,源码文件不能是urllib.py。。。。
  6. import urllib.request
  7. import json
  8. mac_addr = ["a4:44:d1", "08:00:20", "fc:d7:33", "da:a1:19"]
  9. def simple_test():
  10. for i in range(len(mac_addr)):
  11. oui_url = ("http://www.macvendorlookup.com/api/v2/" + mac_addr[i])
  12. request = urllib.request.Request(oui_url)
  13. response = urllib.request.urlopen(request)
  14. #print(response.read())
  15. # 打印网页源码
  16. #print(response.read())
  17. encodedjson = bytes.decode(response.read()) # bytes to string
  18. #print(encodedjson)
  19. if (encodedjson == ''):
  20. #print("empty....")
  21. continue
  22. decodejson = json.loads(encodedjson)
  23. #d1 = json.dumps(decodejson,sort_keys=True,indent=4)
  24. #print(d1)
  25. #print(type(decodejson)) # 这时已经是一个list
  26. # 打印需要的字段
  27. print("mac地址:" + mac_addr[i] + "\t" + decodejson[0]["country"] + " 公司:" + decodejson[0]["company"] + "\t地址:" + decodejson[0]["addressL3"])
  28. #### main
  29. if __name__ == '__main__':
  30. print("url test")
  31. simple_test()


注:好像源码给出的网站访问不太正常,我经常连接失败。


李迟 2016.9.11 周日 晚,桂林母校归来

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/518654
推荐阅读
相关标签
  

闽ICP备14008679号