如何在 Google 云服务上找到 IPv4 地址?

How do I find the IPv4 address on a Google Cloud service?

我有一个部署在 Heroku 上的 Go 服务,它成功地从请求中提取了 IPv4 地址header。

ip := net.ParseIP(strings.Split(r.Header.Get("X-Forwarded-For"), ",")[0]).String()

我已将相同的代码作为服务部署到 Google 云,IP 地址在大约 25% 的时间里经常是 IPv6。检查完整请求后 Header,没有可用的 IPv4 地址,只有 IPv6。

Heroku 的请求 Header X-Forwarded-For 始终包含 IPv4 地址,但 Google Cloud 不包含。有谁知道在 Google Cloud 中为 Request Headers 强制使用 IPv4 格式的方法?

客户端可以通过 IPv4 或 IPv6 连接,但不能同时连接。客户端只会使用一个地址族,代理只会记录一个IP地址。

附加信息:

  1. Heroku 不支持 IPv6,因此客户端必须使用 IPv4 进行连接。 reference

  2. 如果您只需要 IPv4 连接,请不要启用 IPv6 前端。但是,我建议尽可能使用 IPv6。