Created
November 8, 2019 14:54
-
-
Save rafalw/f12d117e65c7d15a4b7c90d6ebf150e2 to your computer and use it in GitHub Desktop.
Informacje o producencie karty sieciowej wg. adresu MAC
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import urllib.parse | |
from io import BytesIO | |
from sys import argv | |
from pycurl import Curl, error | |
# Pozyskiwanie danych producenta karty sieciowej o wskazanym adresie sprzętowym MAC | |
def get_mac_vendor(mac_address, url_api = 'https://macvendors.co/api/', result_form = '/csv'): | |
vendor_result = BytesIO() | |
c = Curl() | |
c.setopt(c.URL, url_api + mac_address + result_form) | |
c.setopt(c.WRITEDATA, vendor_result) | |
try: | |
c.perform() | |
except error as e: | |
print("Error: \"" + e.args[1] +"\"") | |
return None | |
else: | |
vendor_list = vendor_result.getvalue().decode('UTF-8').split('\",\"') | |
c.close() | |
vendor_result.close() | |
return vendor_list | |
if __name__ == "__main__": | |
print("Pozyskiwanie danych producenta karty sieciowej w oparciu o adres sprzętowy MAC.") | |
print("Program korzysta z API serwisu https://macvendors.co \n") | |
if len(argv) < 2: | |
print("Prawidłowe wywołanie: ") | |
print(argv[0] + " XX:XX:XX:XX:XX:XX") | |
print("gdzie XX:XX:XX:XX:XX:XX to adres MAC karty sieciowej.") | |
else: | |
vendor_list = get_mac_vendor(argv[1]) | |
if vendor_list: | |
print("===============================================================================") | |
print(" Company: " + vendor_list[0].replace("\"", "")) | |
print(" MAC prefix: " + vendor_list[1].replace("\"", "")) | |
print(" Address: " + vendor_list[2].replace("\"", "")) | |
print("Start (HEX): " + vendor_list[3].replace("\"", "")) | |
print(" End (HEX): " + vendor_list[4].replace("\"", "")) | |
print(" Country: " + vendor_list[5].replace("\"", "")) | |
print(" Type: " + vendor_list[6].replace("\"", "")) | |
print("===============================================================================\n") | |
else: | |
print("Nie można pobrać danych producenta.") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment