在revel里,我用
revel.WARN.Println("commentData host:", c.Request.RemoteAddr)
来获取客户ip。
可是返回的却是:commentData host: 127.0.0.1:36633
这是为嘛啊。
有疑问加站长微信联系(非本文作者)

在revel里,我用
revel.WARN.Println("commentData host:", c.Request.RemoteAddr)
来获取客户ip。
可是返回的却是:commentData host: 127.0.0.1:36633
这是为嘛啊。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
这个应该是 bug.
你可以打印 request.Header 来看看 ip 在哪个环境变量.
看了一下 源代码, request.RemoteAddr 竟然是 直接连接的 socket addr
这个调用:
syscall.Sockaddr
严格说是正确的, 但是跟 http 有点出入. 如果这个不算 bug, 而且通过 nginx/apache 等服务器转发 Go http 时, 只能从 nginx/apache 服务器的 header 取得 remote ip 了。
谢谢哇,看起来还是要多看看源码啊。