Golang : Validate hostname




Problem :

You need to validate if a given string is a valid hostname or not. Hostnames such as :

 www.socketloop.com

 socketloop.com

 google.com

 digitalocean.com

Solution :

Use regexp.Compile function to validate the string.

For example :

 package main

 import (
 "fmt"
 "regexp"
 "strings"
 )

 func validHost(host string) bool {
 host = strings.Trim(host, " ")

 re, _ := regexp.Compile(`^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$`)
 if re.MatchString(host) {
 return true
 }
 return false
 }

 func main() {
 host1 := "socketloop.com"

 vHost := validHost(host1)

 fmt.Printf("%s is a valid hostname : %v \n", host1, vHost)

 host2 := "socketloop_com"

 vHost2 := validHost(host2)

 fmt.Printf("%s is a valid hostname : %v \n", host2, vHost2)

 host3 := "socketloop/com"

 vHost3 := validHost(host3)

 fmt.Printf("%s is a valid hostname : %v \n", host3, vHost3)

 host4 := "www.socketloop.com"

 vHost4 := validHost(host4)

 fmt.Printf("%s is a valid hostname : %v \n", host4, vHost4)

 }

Output :

socketloop.com is a valid hostname : true

socketloop_com is a valid hostname : false

socketloop/com is a valid hostname : false

www.socketloop.com is a valid hostname : true

  See also : Golang : Validate IP address





By Adam Ng

IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.


Advertisement