gpt4 book ai didi

http - 从 net/http.Request.RemoteAddr 获取 IP 地址最干净的方法是什么

转载 作者:数据小太阳 更新时间:2023-10-29 03:43:07 25 4
gpt4 key购买 nike

Golang net/http 库提供了一个 Request struct ,这是运行服务器时返回的对象。

该结构包括 RemoteAddr: string。

这包含远程(客户端)IP 地址和客户端端口号。当然可以是 IPv4 或 IPv6。

看到的 IPv6 示例值(当客户端在本地主机上时)是:

"[::1]:53947"

一个 IPv4 例子是:

"127.0.0.1:54572"

是否有库函数将它们分解为主机和端口,或者是否有必要使用字符串操作?

最佳答案

我认为您正在寻找 net.SplitHostPort :

func main() {
host, _, _ := net.SplitHostPort("[::1]:53947")
fmt.Println(host)
host, _, _ = net.SplitHostPort("127.0.0.1:54572")
fmt.Println(host)
}

https://play.golang.org/p/BuQRhD0sL54

因为您只需要主机,您可以_ 端口。如果你需要走另一条路,还有 net.JoinHostPort .

关于http - 从 net/http.Request.RemoteAddr 获取 IP 地址最干净的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57563049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com