1. 首页
  2. 主题
  3. Go问与答

GO获取客户端IP地址

hellsam · · 20964 次点击
~~~ 测试了如下都不成功 得不到访问者客户的IP地址 fmt.Println(r.RemoteAddr) fmt.Println(r.Header.get("Remote_addr")) 请问还有什么函数可以获取 客户端IP呢。 ~~~
<a href="/user/polaris" title="@polaris">@polaris</a> 由于不知道你 这2个变量里 是什么参数 所以自己改了一个 返回的是 一串0x72b650 并非IP 是不是还需要进行什么转换 ~~~ func RemoteIp(req *http.Request) string { remoteAddr := req.RemoteAddr if ip := req.Header.Get(&#34;Remote_addr&#34;); ip != &#34;&#34; { remoteAddr = ip } else { remoteAddr, _, _ = net.SplitHostPort(remoteAddr) } if remoteAddr == &#34;::1&#34; { remoteAddr = &#34;127.0.0.1&#34; } return remoteAddr } ~~~
#5
更多评论
~~~ 哦看错了 fmt.Println(r.RemoteAddr) 是可以获取IP的 就是后面带个 端口 有点别扭 怎么去掉呢 ~~~
#1
polaris
社区,需要你我一同完善!
```go func RemoteIp(req *http.Request) string { remoteAddr := req.RemoteAddr if ip := req.Header.Get(XRealIP); ip != &#34;&#34; { remoteAddr = ip } else if ip = req.Header.Get(XForwardedFor); ip != &#34;&#34; { remoteAddr = ip } else { remoteAddr, _, _ = net.SplitHostPort(remoteAddr) } if remoteAddr == &#34;::1&#34; { remoteAddr = &#34;127.0.0.1&#34; } return remoteAddr } ```
#2

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中