golang获取IP地址
时间: 2023-10-02 09:07:46 浏览: 238
获取IP地址
在 Golang 中获取 IP 地址可以使用 `net` 包。下面是一个示例代码,演示了如何获取本地 IP 地址和远程连接的 IP 地址:
```go
package main
import (
"fmt"
"net"
)
func main() {
// 获取本地 IP 地址
addrs, err := net.InterfaceAddrs()
if err != nil {
fmt.Println(err)
return
}
for _, addr := range addrs {
ipNet, ok := addr.(*net.IPNet)
if ok && !ipNet.IP.IsLoopback() && ipNet.IP.To4() != nil {
fmt.Println("本地 IP 地址:", ipNet.IP.String())
}
}
// 获取远程连接的 IP 地址
conn, err := net.Dial("tcp", "google.com:80")
if err != nil {
fmt.Println(err)
return
}
defer conn.Close()
remoteAddr := conn.RemoteAddr().(*net.TCPAddr)
fmt.Println("远程连接的 IP 地址:", remoteAddr.IP.String())
}
```
以上代码首先通过 `net.InterfaceAddrs()` 函数获取本地所有 IP 地址,然后通过过滤和判断条件获取非回环地址,并打印输出。接下来通过 `net.Dial()` 函数建立一个与远程服务器的连接,然后通过 `conn.RemoteAddr()` 方法获取远程连接的 IP 地址,并打印输出。
请注意,获取远程连接的 IP 地址需要进行网络连接操作,因此示例代码中使用了 Google 的地址作为示例。你可以根据自己的需要修改为其他可连接的地址。
阅读全文