Go: come effettuare una richiesta WHOIS

Go: come effettuare una richiesta WHOIS

Il protocollo WHOIS è uno strumento fondamentale per ottenere informazioni sulle risorse su Internet, come domini, indirizzi IP e molto altro ancora. In questo articolo, esploreremo come effettuare una richiesta WHOIS utilizzando il linguaggio di programmazione Go (anche noto come Golang). Go è noto per la sua efficienza e facilità di utilizzo, rendendolo un'ottima scelta per implementare questo tipo di funzionalità.

Cos'è WHOIS?

WHOIS è un protocollo utilizzato per interrogare database pubblici che contengono informazioni sui detentori di nomi di dominio, indirizzi IP e altre risorse su Internet. Le informazioni disponibili attraverso il protocollo WHOIS includono il nome del registrante, le informazioni di contatto e le date di registrazione e scadenza del dominio.

Preparazione dell'ambiente

Per iniziare, è necessario avere Go installato sul proprio sistema. Puoi scaricare Go dal sito ufficiale ( https://golang.org/dl/) e seguire le istruzioni di installazione appropriate per il tuo sistema operativo.

Una volta installato Go, puoi creare un nuovo progetto Go nella directory di lavoro preferita.

Utilizzo del package net di Go

Go offre un package standard net che permette di effettuare facilmente richieste di rete. Iniziamo creando un programma Go che effettuerà una richiesta WHOIS ad un server WHOIS remoto. Ecco un esempio di codice:


    package main

    import (
        "fmt"
        "net"
        "os"
    )
    
    func main() {
        // Indirizzo del server WHOIS a cui vogliamo connetterci.
        whoisServer := "whois.example.com:43"
    
        // Dominio per il quale desideriamo ottenere le informazioni WHOIS.
        domain := "example.com"
    
        // Creiamo una connessione TCP al server WHOIS.
        conn, err := net.Dial("tcp", whoisServer)
        if err != nil {
            fmt.Println("Errore durante la connessione al server WHOIS:", err)
            os.Exit(1)
        }
        defer conn.Close()
    
        // Inviamo la query WHOIS al server.
        query := domain + "\r\n"
        conn.Write([]byte(query))
    
        // Leggiamo la risposta dal server WHOIS.
        buffer := make([]byte, 1024)
        n, err := conn.Read(buffer)
        if err != nil {
            fmt.Println("Errore durante la lettura della risposta WHOIS:", err)
            os.Exit(1)
        }
    
        // Stampiamo la risposta WHOIS.
        fmt.Println(string(buffer[:n]))
    }    

Nel codice sopra, definiamo l'indirizzo del server WHOIS a cui vogliamo connetterci, il dominio per cui desideriamo ottenere le informazioni WHOIS e quindi creiamo una connessione TCP al server WHOIS utilizzando la funzione net.Dial.

Successivamente, inviamo una query WHOIS al server e leggiamo la risposta in un buffer. Infine, stampiamo la risposta a schermo.

Esecuzione del Codice

Per eseguire il codice, assicurati di sostituire whois.example.com con l'indirizzo del server WHOIS che desideri utilizzare e example.com con il dominio per cui vuoi ottenere le informazioni WHOIS.

Una volta apportate le modifiche, salva il file con estensione ".go" (ad esempio, "whois.go") nella directory del tuo progetto e apri il terminale. Utilizza il comando go run per eseguire il programma:


go run whois.go

Il programma si connetterà al server WHOIS specificato, invierà la query e stamperà la risposta a schermo.

Conclusioni

In questo articolo, abbiamo visto come effettuare una richiesta WHOIS utilizzando il linguaggio di programmazione Go. Go offre una semplice e potente libreria per la gestione delle comunicazioni di rete, rendendo facile interrogare server WHOIS e ottenere informazioni sulle risorse su Internet. Questo è solo un esempio di base; è possibile espandere ulteriormente il codice per adattarlo alle proprie esigenze o creare una libreria personalizzata per gestire le richieste WHOIS in modo più completo.

Torna su