Python zdobądź nazwę hosta

Python zdobądź nazwę hosta
Python jest jednym z najpopularniejszych i szeroko przyjmowanych języków programowania współczesnego wieku. I nie bez powodu jest to bezpłatny język programowania na wysokim poziomie, który oferuje prostą i minimalną składnię.

Upraszcza wiele złożonych funkcji, dzięki czemu jest bardzo przyjazny dla użytkownika i łatwy do przyjęcia. Dlatego nie zdziwisz się, że Python jest doskonałym językiem do automatyzacji, jak pokazał poleganie Ansible na nim.

Jedną z najłatwiejszych i najlepszych części do automatyzacji jest tworzenie sieci. Dlatego w tym samouczku pokażemy, jak przynieść nazwę hosta systemu za pomocą różnych modułów Python.

Co to jest nazwa hosta?

Nazwa hosta odnosi się do nazwy podanej urządzeniu w celu zidentyfikowania go w sieci lokalnej. Nazwy hostów ułatwiają komunikowanie się maszyn w sieci.

W systemie Windows możesz uzyskać nazwę hosta urządzenia za pomocą polecenia:

$ nazwa hosta

Możesz także użyć tego samego polecenia w Linux, aby pobrać nazwę hosta urządzenia.

$ hostName -s

W Python możemy zastosować różne techniki i metody, aby uzyskać nazwę hosta maszyny.

Omówmy te metody i sposób ich używania.

Metoda 1 - moduł gniazda Pythona

Jednym z najbardziej wpływowych modułów sieciowych dla Pythona jest moduł gniazda. Zapewnia nam funkcje sieci niskiego poziomu, które można wyeksportować w systemach.

Aby znaleźć nazwę hosta za pomocą modułu gniazda, użyjemy funkcji gethostname ().

Składnia funkcji jest jak pokazana:

gniazdo elektryczne.Gethostname ()

Funkcja nie przyjmuje żadnych parametrów.

Następnie zwraca łańcuch trzymającą nazwę hosta maszyny, w której instalowany jest interpreter.

Aby go użyć, zacznij od zaimportowania modułu gniazda:

Gniazdo importu

Następnie zadzwoń do gniazda.gethostname () funkcjonują jako:

Gniazdo importu
host = gniazdo.Gethostname ();
print („nazwa hosta ->”, host)

W powyższym przykładzie zapisujemy nazwę hosta w zmiennej, której możemy użyć później.

Metoda 2 - moduł Python OS

Moduł OS zapewnia nam funkcjonalność do interakcji z systemem operacyjnym. Na przykład możemy użyć funkcji tego modułu () do określenia nazwy hosta systemu systemu.

Składnia funkcji jest jak pokazana:

OS.uname ()

Podobnie funkcja nie przyjmuje żadnych parametrów. Następnie zwraca obiekt składający się z pięciu atrybutów, a mianowicie:

  1. Sysname - nazwa systemu operacyjnego.
  2. Nodename - nazwa komputera w sieci lub nazwie hosta.
  3. Wydanie - wydanie systemu operacyjnego.
  4. Wersja - wersja systemu operacyjnego
  5. maszyna - identyfikator sprzętu.

Aby go użyć, możemy zacząć od zaimportowania funkcji niezmiennej z modułu OS

Z systemu operacyjnego importu

Następnie możemy użyć funkcji niezmiennej, aby uzyskać szczegóły systemu:

print (uname ())

Funkcja powinna zachować obiekt zawierający informacje systemowe jako:

POSIX.uname_result (sysname = „Linux”, nodename = 'master', release = '5.10.102.1-Microsoft-Standard-WSL2 ', wersja ='#1 SMP Wed 2 marca 00:30:59 UTC 2022 ', Machine =' x86_64 ')

Zauważ, że funkcja uname () działa tylko w systemach UNIX. W przypadku systemów Windows sprawdź drugą metodę poniżej.

Aby uzyskać tylko nazwę hosta, możemy uzyskać dostęp do drugiego elementu w obiekcie za pomocą notacji indeksu jako:

Z systemu operacyjnego importu
print (uname () [1])

Powinno to zwrócić tylko nazwę hosta maszyny.

Metoda 3 - moduł Python OS (getnev)

Jak wspomniano, funkcja uname () nie powiedzie się w systemach Windows. Możesz jednak użyć funkcji getenv () i przekazać klucz docelowy.

Składnia funkcji jest jak pokazana:

OS.getenv (klucz, domyślnie = brak)

Funkcja zwróci następnie wartość zmiennej środowiskowej powiązanej z określonym kluczem.

Windows ma środowisko o nazwie „Computername”, które zawiera nazwę hosta komputera.

Możemy użyć tej zmiennej środowiska jako klucza do funkcji getNev () jako:

z OS Import Getenv
Drukuj (OS.getenv („computername”))

Powyższy kod powinien zwrócić nazwę hosta komputera jako ciąg.

W Linux zastąp klawisz od „Computternane” na „Nazwa”.

Metoda 4 - Moduł platformy Python

Python ma kolejny świetny moduł, który pozwala nam pobrać nazwę hosta maszyny. Platforma pozwala nam zebrać fakty dotyczące platformy, takich jak sieć, system operacyjny, tłumacze i nie tylko.

Aby pobrać nazwę hosta maszyny za pomocą modułu platformy, możemy użyć funkcji node ().

Składnia jest jak pokazana:

platforma.węzeł()

Zazwyczaj funkcja nie przyjmuje żadnych parametrów. Następnie zwraca nazwę hosta bieżącego komputera jako ciąg.

Zacznijmy od zaimportowania funkcji węzła:

Z węzła importowego platformy
Następnie użyj go, aby pobrać nazwę hosta jako:
Z węzła importowego platformy
print (node ​​())

Funkcja działa zarówno w systemach Windows, jak i UNIX.

Metoda 5 - Uzyskaj nazwę hosta z IP

W niektórych przypadkach może być konieczne pobranie nazwy hosta danego adresu IP. Używamy funkcji gethostbyaddr () z modułu gniazda.

Składnia funkcji jest jak pokazana:

gniazdo elektryczne.gethostbyaddr (ip_address)

Funkcja akceptuje adres IP jako argument w typu ciągu i zwraca informacje o adresie IP.

Funkcja zwraca informacje, takie jak nazwa hosta, aliaslist i iPaddrList jako krotek. Następnie możemy użyć indeksowania krotek, aby uzyskać nazwę hosta IP.

Dobrą rzeczą w tej funkcji jest to, że obsługuje ona zarówno IPv4, jak i IPv6.

Przykładowy kod jest taki jak pokazano:

z gniazda gethostbyaddr
Drukuj („IPv4:”, GethostbyAddr („1.1.1.1 ") [0])
Drukuj („IPv6:”, Gethostbyaddr („2606: 4700: 4700 :: 1111”) [0])

Tutaj przynosimy nazwę hosta dwóch adresów IP, jeden w IPv4, a drugi w IPv6.

Powstałe wartości są jak pokazane:

IPv4: jeden.jeden.jeden.jeden
IPv6: jeden.jeden.jeden.jeden

Jak widać z powyższego wyjścia, funkcja jest w stanie rozwiązać nazwę hosta obu adresów IP.

Wniosek

W tym samouczku zbadaliśmy pięć metod, których można użyć do pobrania nazwy hosta maszyny za pomocą Pythona. Wybierz ten, który działa dla Ciebie i trzymaj się tego.