以下获取本地 IP 地址:
package main
import (
"fmt"
"net"
)
func main() {
a, _ := net.LookupHost("localhost")
fmt.Printf("Addresses: %#+v\n",a)
}
Run Code Online (Sandbox Code Playgroud)
这是您通常获取本地 IP 地址并根据需要手动过滤切片的方式吗?
以下是对最初由 Russ Cox 发布到 golang-nuts google group 的代码片段的快速而肮脏的修改:
package main
import (
"fmt"
"net"
"os"
)
func main() {
tt, err := net.Interfaces()
if err != nil {
panic(err)
}
for _, t := range tt {
aa, err := t.Addrs()
if err != nil {
panic(err)
}
for _, a := range aa {
ipnet, ok := a.(*net.IPNet)
if !ok {
continue
}
v4 := ipnet.IP.To4()
if v4 == nil || v4[0] == 127 { // loopback address
continue
}
fmt.Printf("%v\n", v4)
}
os.Exit(0)
}
os.Exit(1)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4978 次 |
最近记录: |