golang获取本机ip
时间: 2023-08-23 10:06:45 浏览: 55
可以使用net包中的函数来获取本机IP。
以下是一个示例代码:
```go
package main
import (
"fmt"
"net"
)
func main() {
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(ipnet.IP.String())
}
}
}
```
该代码会输出本机所有IPv4地址。
相关问题
golang 获取用户请求IP地址的代码
可以使用net包中的RemoteAddr方法获取用户请求的IP地址,示例代码如下:
```
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
ip := r.RemoteAddr
fmt.Fprintf(w, "Your IP address is: %s", ip)
})
http.ListenAndServe(":8080", nil)
}
```
当用户访问时,会返回类似于"Your IP address is: 127.0.0.1:12345"的信息,其中"127.0.0.1"就是用户的IP地址。
golang获取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 的地址作为示例。你可以根据自己的需要修改为其他可连接的地址。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)