Go语言获取外网和本地IP
2018-07-20 来源:open-open
package main import ( "flag" "fmt" "io" "net" "net/http" "os" ) var get_ip = flag.String("get_ip", "", "external|internal") func main() { fmt.Println("Usage of ./getmyip --get_ip=(external|internal)") flag.Parse() if *get_ip == "external" { get_external() } if *get_ip == "internal" { get_internal() } } func get_external() { resp, err := http.Get("http://myexternalip.com/raw") if err != nil { os.Stderr.WriteString(err.Error()) os.Stderr.WriteString("\n") os.Exit(1) } defer resp.Body.Close() io.Copy(os.Stdout, resp.Body) os.Exit(0) } func get_internal() { addrs, err := net.InterfaceAddrs() if err != nil { os.Stderr.WriteString("Oops:" + err.Error()) 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") } } } os.Exit(0) }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
下一篇:C# 移除数组中重复数据
最新资讯
热门推荐