为了账号安全,请及时绑定邮箱和手机立即绑定

从服务器中的请求中获取真实 IP

从服务器中的请求中获取真实 IP

Go
凤凰求蛊 2022-09-12 20:57:07
我正在尝试从 HTTP 请求中提取真实的 IP。当我从部署在同一 VM 上的容器进行 CURL 调用时,我通过 r.RemoteAddr 从 http 请求中获取容器的 IP,而不是 VM 的 IP。但是当我使用打印请求时,我可以看到VM的真实IP在那里。来自 Print 语句的示例请求如下所示:fmt.Printf("Request: %s", r)&{GET /containers/json HTTP/1.1 %!s(int=1) %!s(int=1) map[Accept:[*/*] User-Agent:[curl/7.64.0]] {} %!s(func() (io.ReadCloser, error)=<nil>) %!s(int64=0) [] %!s(bool=false) 10.32.20.122:2375 map[] map[] %!s(*multipart.Form=<nil>) map[] 172.20.0.1:47102 /containers/json %!s(*tls.ConnectionState=<nil>) %!s(<-chan struct {}=<nil>) %!s(*http.Response=<nil>) %!s(*context.cancelCtx=&{0xc000120480 {0 0} <nil> map[] <nil>})}在上面的输出中是虚拟机 IP,并且是泊坞窗网络网关 IP。我想提取虚拟机 IP。10.32.20.122172.20.0.1
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

你最好在你的Printf中使用%+v

fmt.Printf("Request: %+v", r)

然后你可以看到这个领域叫什么。


查看完整回答
反对 回复 2022-09-12
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信