Python과 API를 사용하여 MAC 주소 찾기

개술


네트워크 엔지니어로서, 나는 때때로 포트에 연결된 어떤 종류의 장치가 있는지, 아니면 ARP를 통해 방화벽에 등록된 것이 무엇인지 검증해야 한다.한 개의 MAC 주소가 손에 있는 것이 유용하다. 원인은 매우 많지만, 나의 예에서 한 개의 MAC 주소는 네트워크 고장 제거에 매우 유용하다.
MAC 주소를 API로 보내고 응답은 이 주소의 공급자가 될 Python 스크립트에 대해 알려 드리겠습니다.따라서 브라우저를 열고 웹에서 검색할 필요가 없도록 스크립트를 만듭니다.🧑‍💻
 

MAC 주소란?


MAC 주소는 IEEE(전기 및 전자 엔지니어 협회)에 등록되어 있습니다.MAC 주소의 접두사는 공급업체, 제조업체 또는 기타 조직을 고유하게 식별하는 숫자입니다.

위키백과:


A media access control address (MAC address) is a unique identifier assigned to a network interface controller (NIC) for use as a network address in communications within a network segment. MAC addresses are primarily assigned by device manufacturers, and are therefore often referred to as the burned-in address, or as an Ethernet hardware address, hardware address, or physical address.


따라서 만약 인터넷에 연결된 장치가 있다면, 네트워크 인터페이스 카드는 IEEE에 등록되어 있습니다.
이것은 공급업체 명단이다.
http://standards-oui.ieee.org/oui/oui.txt
 

요구 사항

  • Python 3
  • 요청 - 파이톤 라이브러리
  • API-Macvendors.이 API는 무료로 등록할 필요가 없습니다.
  •  

    인코딩 해달라고!


    라이브러리 가져오기부터 시작합시다.
    import sys
    
    from requests import get
    
    대상을 대상으로 프로그래밍하는 것이 멋있기 때문에 클래스를 만듭니다.😎
    class Macpyoui:
        def __init__(self, api):
            self.api = api
    
    
    site = "https://api.macvendors.com/"
    data = Macpyoui(site)
    macaddress = input("Please enter the MAC address: ")
    
    우리 반을 몇 조로 나누어 우리가 무엇을 했는지 봅시다.
  • Macpyoui라는 클래스를 만들었습니다.이것은 우리가 우리의 정보를 호출하는 것을 허락할 것이다.
  • 에 방법__init__을 만들고 매개 변수selfapi를 추가했습니다.
  • 분배self.apiapi이다.
  • 내가 변수를 추가한 것도 볼 수 있을 거야.
  • site - MAC 주소를 보낼 웹 사이트입니다.
  • data - 여기에 데이터라는 변수를 만들고 매개 변수site를 클래스Macpyoui에 분배합니다.이것은 내가 함수에서 그것을 호출할 수 있도록 허락할 것이다.
  • macaddress - 스크립트를 실행하는 사람에게 MAC 주소가 무엇인지 macaddress 함수로 물어보고 문자열을 추가해서 MAC 주소를 물어봅니다.
  • 이제 함수를 정의합니다.
    def searchmac():
        macsend = data.api + macaddress
        vendorsearch = get(macsend).text
        if "Not Found" in vendorsearch:
            print("MAC address not found.")
        elif len(sys.argv) == 1:
            print("No MAC address entered.")
        else:
            print(vendorsearch)
    
    분해 함수.
    def searchmac():
    
  • 여기서 함수를 만듭니다input
  • macsend = data.api + macaddress
    
  • 그리고 우리는 searchmac라는 변수를 만들었다.
  • 분배macsend합니다.
  • 작업에서 우리는 data.api + macaddress를 사용했는데 이것은 사이트에 대한 요구이다.
  • data.apidata은 호출된 클래스data.api였고Macpyoui는 해당 클래스에 요청된 사이트였다..api에 대해 말하자면 이것은 사용자가 제공한 것이고 우리는 결합macaddress이다.그래서 써봤는데 ++https://api.macvendors.com/
    vendorsearch = get(macsend).text
    
  • 여기에는 mac address를 분배하여 vendorsearch 요청을 사용하고 매개 변수get에서 MAC 주소를 보냅니다.우리는 그것을 간단한 텍스트로 바꾸고, 마지막에 macsend 덧붙일 것을 확보했다.
  • if "Not Found" in vendorsearch:
            print("MAC address not found.")
        elif len(sys.argv) == 1:
            print("No MAC address entered.")
        else:
            print(vendorsearch)
    
  • 함수의 마지막 부분에 대해 우리는 몇 개의 .text 문구를 만들어서 어떤 정보를 입력했는지 확인한다.
  • if "Not Found" in vendorsearch:
            print("MAC address not found.") 
    
  • API 응답이 if인 경우 인쇄Not Found합니다.
  • elif len(sys.argv) == 1:
            print("No MAC address entered.")
    
    - 사용자가 MAC 주소를 입력하지 않으면 인쇄MAC address not found합니다.
    else:
            print(vendorsearch)
    
  • 만약에 사이트의 답장이 앞의 두 If 문장 중의 하나가 아니라면 답장을 출력할 것이다.
  • 마지막으로, 우리는 밑에 우리의 주요 방법을 추가할 것이다.이것은 우리로 하여금 10배의 인코더가 되게 한다.
    if __name__ == "__main__":
        searchmac()
    
    이렇게!우리는 간단한 검사를 실행하기 위해 너무 많은 것을 필요로 하지 않는다.

    테스트해 봅시다!

    검색 성공


    ~ ❯ python3 macpy.py                                                                                                                                   
    Please enter the MAC address: F4BD9E
    Cisco Systems, Inc
    

    검색 실패


    ~ ❯ python3 macpy.py
    Please enter the MAC address:
    MAC address not found.
    

    항목을 빠뜨리다


    ~ ❯ python3 macpy.py                                                                                                                                   
    Please enter the MAC address:
    No MAC address entered
    
    다음은 전체 코드입니다.
    import sys
    
    from requests import get
    
    __version__ = "1.0"
    
    
    class Macpyoui:
        def __init__(self, api):
            self.api = api
    
    
    site = "https://api.macvendors.com/"
    data = Macpyoui(site)
    macaddress = input("Please enter the MAC address: ")
    
    
    def searchmac():
        macsend = data.api + macaddress
        vendorsearch = get(macsend).text
        if "Not Found" in vendorsearch:
            print("MAC address not found.")
        elif len(sys.argv) == 1:
            print("No MAC address entered.")
        else:
            print(vendorsearch)
    
    if __name__ == "__main__":
        searchmac()
    
    GitHub의 코드를 확인합니다.
    https://github.com/applericky/macpy
    읽어주셔서 감사합니다!
    피드백 또는 질문?알려줘!

    좋은 웹페이지 즐겨찾기