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
Tutorials
+20.1k Golang : How to get time from unix nano example
+52.1k Golang : How to get time in milliseconds?
+6.9k Golang : Humanize and Titleize functions
+5.3k Swift : Convert (cast) Float to Int or Int32 value
+8.5k Golang : Check if integer is power of four example
+8k Golang : Load DSA public key from file example
+7.1k Fix sudo yum hang problem with no output or error messages
+16.5k CodeIgniter/PHP : Create directory if does not exist example
+34k Golang : convert(cast) bytes to string
+15.7k Golang : Validate hostname
+11.3k Golang : Simple image viewer with Go-GTK
+6.2k Golang : Function as an argument type example