📜  从 MAC 地址获取设备供应商名称的Python脚本

📅  最后修改于: 2022-05-13 01:54:36.028000             🧑  作者: Mango

从 MAC 地址获取设备供应商名称的Python脚本

先决条件: Python请求

MAC 地址是网络接口的唯一标识,用于对计算机网络中的设备进行寻址。

MAC地址由什么组成

MAC 地址由 12 个十六进制数字和 6 个八位字节组成,以 ':' 分隔。 MAC 地址有 6 个八位字节。在前半部分,存储制造商信息。

MAC地址

我们如何获得制造商的详细信息?

在本文中,我们将使用一个 API 来为我们获取 MAC 地址。我们将使用Python脚本来自动化获取过程,以便我们稍后可以在可能需要此功能的软件和网站中使用它。

我们将使用 requests 模块来处理这个 API。

下面是实现。

Python3
import requests
import argparse
  
print("[*] Welcome")
  
# Function to get the interface name
def get_arguments():
    
    # This will give user a neat CLI
    parser = argparse.ArgumentParser()
      
    # We need the MAC address
    parser.add_argument("-m", "--macaddress",
                        dest="mac_address",
                        help="MAC Address of the device. "
                        )
    options = parser.parse_args()
      
    # Check if address was given
    if options.mac_address:
        return options.mac_address
    else:
        parser.error("[!] Invalid Syntax. "
                     "Use --help for more details.")
  
  
def get_mac_details(mac_address):
      
    # We will use an API to get the vendor details
    url = "https://api.macvendors.com/"
      
    # Use get method to fetch details
    response = requests.get(url+mac_address)
    if response.status_code != 200:
        raise Exception("[!] Invalid MAC Address!")
    return response.content.decode()
  
# Driver Code
if __name__ == "__main__":
    mac_address = get_arguments()
    print("[+] Checking Details...")
      
    try:
        vendor_name = get_mac_details(mac_address)
        print("[+] Device vendor is "+vendor_name)
    except:
        
        # Incase something goes wrong
        print("[!] An error occured. Check "
              "your Internet connection.")


将此代码另存为 macdetails.py。我们可以使用 '-h' 或 '–help' 来查看有关如何从终端运行此脚本的帮助。

输出 :