Skip to content

Instantly share code, notes, and snippets.

@bontusss
Created December 29, 2022 00:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bontusss/d117e574307d79eb5e467cdd443dd475 to your computer and use it in GitHub Desktop.
Save bontusss/d117e574307d79eb5e467cdd443dd475 to your computer and use it in GitHub Desktop.
available
package main
import (
"bufio"
"fmt"
"log"
"net"
"os"
"strings"
"time"
)
func exists(domain string) (bool, error) {
const whoisServer string = "com.whois-servers.net"
conn, err := net.Dial("tcp", whoisServer+":43")
if err != nil {
return false, err
}
defer conn.Close()
conn.Write([]byte(domain + "\r\n"))
scanner := bufio.NewScanner(conn)
for scanner.Scan() {
if strings.Contains(strings.ToLower(scanner.Text()), "no match") {
return false, nil
}
}
return true, nil
}
var marks = map[bool]string{true: "✓", false: "✗"}
func main() {
s := bufio.NewScanner(os.Stdin)
for s.Scan() {
domain := s.Text()
fmt.Print(domain, " ")
exist, err := exists(domain)
if err != nil {
log.Fatalln(err)
}
fmt.Println(marks[!exist])
time.Sleep(1 * time.Second)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment