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
+8k Golang : Configure Apache and NGINX to access your Go service example
+20.2k Nginx + FastCGI + Go Setup.
+22.3k Golang : Set and Get HTTP request headers example
+6.6k Fix sudo yum hang problem with no output or error messages
+17.3k Golang : Clone with pointer and modify value
+4.8k Golang : micron to centimeter example
+17.2k Golang : Multi threading or run two processes or more example
+11.1k Use systeminfo to find out installed Windows Hotfix(s) or updates
+8.3k Golang : Add text to image and get OpenCV's X, Y co-ordinates example
+9.2k Golang : Play .WAV file from command line
+8k Swift : Convert (cast) Character to Integer?
+6.5k Golang : Output or print out JSON stream/encoded data