Python får vertsnavn

Python får vertsnavn
Python er et av de mest populære og bredt adopterte programmeringsspråkene i moderne tid. Og av en god grunn er det et gratis programmeringsspråk på høyt nivå som tilbyr enkel og minimal syntaks.

Det forenkler mange komplekse funksjoner som gjør det veldig brukervennlig og enkelt å adoptere. Derfor vil du ikke bli overrasket over å høre at Python er et utmerket språk for automatisering, som avbildet av Ansible's avhengighet av det.

En av de enkleste og beste delene å automatisere er nettverk. Derfor vil vi i denne opplæringen vise deg hvordan du henter vertsnavnet til et system ved hjelp av forskjellige Python -moduler.

Hva er et vertsnavn?

Et vertsnavn refererer til navnet gitt til en enhet for å identifisere det i et lokalt nettverk. Vertsnavn gjør det enkelt for maskiner å kommunisere i et nettverk.

I Windows kan du få vertsnavnet til en enhet ved hjelp av kommandoen:

$ vertsnavn

Du kan også bruke den samme kommandoen på Linux for å hente vertsnavnet på enheten din.

$ vertsnavn -S

I Python kan vi bruke forskjellige teknikker og metoder for å få vertsnavnet til en maskin.

La oss diskutere disse metodene og hvordan vi bruker dem.

Metode 1 - Python Socket Module

En av de mest innflytelsesrike nettverksmodulene for Python er sokkelmodulen. Det gir oss nettverksfunksjoner på lavt nivå som kan eksporteres på tvers av systemer.

For å finne vertsnavnet ved hjelp av socket -modulen, bruker vi GethostName () -funksjonen.

Funksjonssyntaksen er som vist:

stikkontakt.gethostname ()

Funksjonen tar ingen parametere.

Den returnerer deretter en streng som holder maskinens vertsnavn der tolken er installert.

For å bruke den, start med å importere sokkelmodulen:

Importkontakt

Neste, ring kontakten.gethostName () funksjon som:

Importkontakt
vert = stikkontakt.gethostname ();
Print ("Hostname ->", vert)

I eksemplet over lagrer vi vertsnavnet i en variabel som vi kan bruke senere.

Metode 2 - Python OS -modul

OS -modulen gir oss funksjonaliteten til å samhandle med operativsystemet. For eksempel kan vi bruke denne modulens Uname () -funksjon for å bestemme systemets vertsnavn.

Funksjonssyntaksen er som vist:

OS.Uname ()

Tilsvarende tar ikke funksjonen noen parametere. Den returnerer deretter et objekt som består av fem attributter, nemlig:

  1. Sysname - Navnet på operativsystemet.
  2. Nodenavn - navnet på maskinen på nettverket eller vertsnavnet.
  3. Utgivelse - OS -utgivelsen.
  4. Versjon - OS -versjonen
  5. Maskin - maskinvareidentifikatoren.

For å bruke den, kan vi starte med å importere Uname -funksjonen fra OS -modulen

Fra OS Import Uname

Vi kan deretter bruke Uname -funksjonen for å få systemdetaljene:

Print (Uname ())

Funksjonen skal beholde objektet som holder systeminformasjonen som:

Posix.uname_result (sysName = 'linux', nodename = 'master', release = '5.10.102.1-Microsoft-Standard-WSL2 ', versjon ='#1 SMP ons 2 00:30:59 UTC 2022 ', Machine =' x86_64 ')

Merk at Uname () -funksjonen bare fungerer på UNIX -systemer. For Windows -systemer, sjekk den andre metoden nedenfor.

For å få bare vertsnavnet, kan vi få tilgang til det andre elementet i objektet ved hjelp av indeksnotasjon som:

Fra OS Import Uname
Print (Uname () [1])

Dette skal bare returnere vertsnavnet til maskinen.

Metode 3 - Python OS -modul (Getnev)

Som nevnt vil Uname () -funksjonen mislykkes på Windows Systems. Du kan imidlertid bruke GetEnv () -funksjonen og passere målnøkkelen.

Funksjonssyntaksen er som vist:

OS.getEnv (nøkkel, standard = ingen)

Funksjonen vil deretter returnere verdien av miljøvariabelen tilknyttet den spesifiserte tasten.

Windows har et miljø som heter "ComputerName" som holder maskinens vertsnavn.

Vi kan bruke denne miljøvariabelen som nøkkelen til getnev () -funksjonen som:

Fra OS Import GetEnv
trykk (OS.getEnv ('Computername'))

Koden over skal returnere vertsnavnet til maskinen som en streng.

I Linux kan du erstatte nøkkelen fra 'Computernane' til 'Navn'.

Metode 4 - Python plattformmodul

Python har en annen flott modul som gjør at vi kan hente vertsnavnet til en maskin. Plattformen lar oss samle fakta om en plattform, for eksempel nettverk, operativsystem, tolker og mer.

For å hente vertsnavnet til en maskin ved hjelp av plattformmodulen, kan vi bruke node () -funksjonen.

Syntaksen er som vist:

plattform.Node ()

Vanligvis tar funksjonen ingen parametere. Den returnerer deretter vertsnavnet til den nåværende maskinen som en streng.

La oss starte med å importere nodefunksjonen:

Fra plattformimportnode
Bruk den deretter til å hente vertsnavnet som:
Fra plattformimportnode
print (node ​​())

Funksjonen fungerer på både Windows og UNIX -systemer.

Metode 5 - Få vertsnavn fra IP

I noen tilfeller kan det hende du må hente vertsnavnet til en gitt IP -adresse. Vi bruker GethostByAddr () -funksjonen fra sokkelmodulen.

Funksjonssyntaksen er som vist:

stikkontakt.gethostbyaddr (ip_address)

Funksjonen godtar IP -adressen som argument i strengtype og returnerer informasjonen om IP -adressen.

Funksjonen returnerer informasjon som vertsnavn, aliaslist og iPaddrlist som en tuple. Vi kan deretter bruke tupleindeksering for å få vertsnavnet til IP.

Det gode med denne funksjonen er at den støtter både IPv4 og IPv6.

Et eksempelkode er som vist:

fra socketimport gethostbyaddr
print ("IPv4:", gethostbyaddr ("1.1.1.1 ") [0])
Print ("IPv6:", GethostbyAddr ("2606: 4700: 4700 :: 1111") [0])

Her henter vi vertsnavnet til to IP -adresser, den ene i IPv4 og den andre i IPv6.

De resulterende verdiene er som vist:

IPv4: en.en.en.en
IPv6: en.en.en.en

Som du ser fra utgangen ovenfor, er funksjonen i stand til å løse vertsnavnet til begge IP -adressene.

Konklusjon

I denne opplæringen undersøkte vi fem metoder du kan bruke til å hente vertsnavnet til en maskin ved hjelp av Python. Velg den som fungerer for deg og hold deg til den.