Skip to content

Instantly share code, notes, and snippets.

@goliatone
Forked from jniltinho/myip.go
Last active June 11, 2017 20:25
Show Gist options
  • Save goliatone/77ee460125e36d0673f3 to your computer and use it in GitHub Desktop.
Save goliatone/77ee460125e36d0673f3 to your computer and use it in GitHub Desktop.
Get My IP Golang
package main
import (
"net"
"log"
"os"
)
func main(){
ifaces, _ := net.Interfaces()
for _, i := range ifaces {
addrs, err := i.Addrs()
if err != nil {
log.Panic(err)
}
for _, addr := range addrs {
var ip net.IP
switch v := addr.(type) {
case *net.IPNet:
ip = v.IP
case *net.IPAddr:
ip = v.IP
}
// process IP address
os.Stdout.WriteString(string(ip) + "\n")
}
}
}
package main
/*
URL: https://github.com/mccoyst/myip/blob/master/myip.go
URL: http://changsijay.com/2013/07/28/golang-get-ip-address/
*/
import (
"net"
"os"
)
func main() {
addrs, err := net.InterfaceAddrs()
if err != nil {
os.Stderr.WriteString("Oops: " + err.Error() + "\n")
os.Exit(1)
}
for _, a := range addrs {
if ipnet, ok := a.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
if ipnet.IP.To4() != nil {
os.Stdout.WriteString(ipnet.IP.String() + "\n")
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment