The code recipe is modified from this video made by tutorialedge.net, this recipe does these: Help interface. To find out ipv4 address from fqdn: cli --host http://www.google.com ip Resolve FQDN to IPv4 addresses. To find out cname from given host: cli --host google.com cname Get the cname from given host. To find out mx records … Continue reading Golang – Writing a command line program with urfave/cli package
Category: Programming
Golang – Encode Json data
This recipe demonstrates how to use struct to encode to json data. The struct type and its attributes have to be exportable in order for json encoding. The json data uses the attributes of struct type as keys if there is no customize key name defined. package main import ( "encoding/json" "fmt" "log" ) // … Continue reading Golang – Encode Json data
Golang – Find absolute path of a file.
This recipe finds the absolute path of the specified filename, the problem with this code is that it returns the first match and hence only useful if the filename is unique. package main import ( "fmt" "log" "os" "path/filepath" ) var absPath string // global variable to store absolute path of filename. func findFileAbsPath(basepath, filename … Continue reading Golang – Find absolute path of a file.
Golang – Check if IPv4 is valid and resolve FQDN
This recipe demonstrates if string is a valid IPv4, and also to resolve a FQDN to IP address. This recipe uses os.Args to get the second argument as FQDN and call net.ResolveIPAddr() function to do a FQDN resolution to IP address. package main import ( "fmt" "log" "net" "os" ) func isIPv4Addr(ip string) bool { … Continue reading Golang – Check if IPv4 is valid and resolve FQDN
Golang – Write sentence to file
This recipe demonstrates how to use flag to build a command line program, how to convert string slice to string and how to write sentence to file specified by user. Usage example: writefile -f test.txt hi this is a test. package main import ( "flag" "io" "log" "os" "strings" ) func convertSliceToString(s []string) string { … Continue reading Golang – Write sentence to file
Golang – Download files from website
This recipe downloads all kinds of files from website, but there is no progress tracking, only download the file. package main import ( "io" "log" "net/http" "os" ) func downloadFile(filepath, url string) error { resp, err := http.Get(url) if err != nil { return err } defer resp.Body.Close() f, err := os.Create(filepath) if err != … Continue reading Golang – Download files from website
Golang – Template
In python I can use Jinja2 template module to parse variables to Cisco command template, in Golang there is text/template which is similar to Jinja2 template engine for python. This recipe gives an example on how to parse variables into a text template. The types within the struct have to be exported in order for … Continue reading Golang – Template
Golang – Obfuscate password input
This recipe shows how to obfuscate the password when user is typing the password. package p1 import ( "fmt" "log" "os" "golang.org/x/crypto/ssh/terminal" ) func getPassword() string { fmt.Println("\nPassword: ") // https://godoc.org/golang.org/x/crypto/ssh/terminal#ReadPassword // terminal.ReadPassword accepts file descriptor as argument, returns byte slice and error. passwd, e := terminal.ReadPassword(int(os.Stdin.Fd())) if e != nil { log.Fatal(e) } // … Continue reading Golang – Obfuscate password input
Golang – Reading a text file
This is a recipe for reading a text file. package main import ( "bufio" "fmt" "log" "os" ) func errCallback(e error) { // General log error to console. if e != nil { log.Fatal(e) } } func openTextFile(fname string) { // os.Open returns file pointer and error fptr, e := os.Open(fname) errCallback(e) defer fptr.Close() // … Continue reading Golang – Reading a text file
Golang – How to write ssh.HostKeyCallback
ssh.InsecureIgnoreHostKey is lazy and seems popular? I have seen many tutorials and some codes in github that ignore host key checking, this is not recommended as you need to ensure everytime you connect to the known ssh server is the actual server that serves your purpose, if host key checking is ignore then any server … Continue reading Golang – How to write ssh.HostKeyCallback