os.Hostname în Go

Returnează numele calculatorului (host name) raportat de sistemul de operare.

Sintaxă
func Hostname() (name string, err error)

Ce face os.Hostname

os.Hostname dă numele mașinii, același cu cel afișat de comanda hostname. Este util în jurnale și în metrici, când același program rulează pe mai multe servere.

Numele nu este neapărat un nume DNS valid sau unic; nu îl folosi ca adresă de rețea fără să verifici.

Ce returnează

Numele și nil, sau o eroare.

Exemple

Exemplul 1: Numele serverului în jurnal

package main

import (
    "fmt"
    "os"
)

func main() {
    nume, err := os.Hostname()
    if err != nil {
        fmt.Println("eroare:", err)
        return
    }
    fmt.Printf("[%s] serverul a pornit\n", nume)
}

Rezultat posibil (diferă la fiecare rulare)

[web-iasi-01] serverul a pornit

Exemplul 2: Verificare fără a afișa numele

package main

import (
    "fmt"
    "os"
)

func main() {
    nume, err := os.Hostname()
    fmt.Println("fără eroare:", err == nil)
    fmt.Println("are nume:", len(nume) > 0)
}

Rezultat

fără eroare: true
are nume: true

Greșeli frecvente

  • Folosești numele mașinii ca identificator unic al unei instanțe în containere. Mai multe containere pot avea nume asemănătoare sau generate; combină-l cu PID-ul sau un ID propriu.

Comenzi înrudite

  • os.Getpid: Getpid returnează ID-ul procesului curent; Getppid, ID-ul procesului care l-a pornit (părintele).
  • os.Getenv: Returnează valoarea unei variabile de mediu sau textul gol dacă variabila nu există.