Golang : Validate hostname



Tags : golang validate hostname regular-expression regexp compile

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

Affiliate :

Hire Golang Developers


  See also : Golang : Validate IP address



Tags : golang validate hostname regular-expression regexp compile

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