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 importuNastępnie zadzwoń do gniazda.gethostname () funkcjonują jako:
Gniazdo importuW 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:
Aby go użyć, możemy zacząć od zaimportowania funkcji niezmiennej z modułu OS
Z systemu operacyjnego importuNastę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 importuPowinno 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 GetenvPowyż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 platformyFunkcja 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 gethostbyaddrTutaj 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.jedenJak 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.