我有一個部署在 Heroku 上的 Go 服務,它成功地從請求標頭中提取 IPv4 地址。
ip := net.ParseIP(strings.Split(r.Header.Get("X-Forwarded-For"), ",")[0]).String()
我已將相同的代碼作為服務部署到 Google Cloud,并且 IP 地址在大約 25% 的時間里經常是 IPv6。在檢查完整的請求標頭后,任何地方都沒有可用的 IPv4 地址,只有 IPv6。
Heroku 的請求標頭 X-Forwarded-For 始終包含 IPv4 地址,但 Google Cloud 不包含。有誰知道強制谷歌云中請求標頭的 IPv4 格式的方法?
uj5u.com熱心網友回復:
客戶端可以通過 IPv4 或 IPv6 進行連接,但不能同時通過這兩種方式進行連接。客戶端只會使用一個地址族,并且代理只會記錄一個 IP 地址。
附加資訊:
Heroku 不支持 IPv6,因此客戶端必須使用 IPv4 進行連接。參考
如果您只需要 IPv4 連接,請不要啟用 IPv6 前端。但是,我建議盡可能使用 IPv6。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449303.html
