登录
首页 >  Golang >  Go问答

Net包中的Go如何获取req.RemoteAddr?

来源:stackoverflow

时间:2024-03-20 12:09:37 422浏览 收藏

在研究服务器如何确定客户端 IP 地址时,需要检查 X-Forwarded-For 标头链。但是,服务器处理程序还可以访问 req.RemoteAddr 字段来读取客户端的 IP 地址。本文将探讨 RemoteAddr 如何确定,它是否基于特定标头,以及 net/http 服务器如何设置它。

问题内容

在研究服务器如何确定客户端的 IP 地址时,我发现需要检查 X-Forwarded-For 标头链。

据我了解,客户端、ISP、路由器和代理都在那里声明其 IP 地址。

但是,服务器处理程序还可以访问 req.RemoteAddr 字段来读取客户端的 IP 地址。 RemoteAddr 到底是如何确定的?它基于请求中的特定标头吗?如果是,是哪一个?

我尝试检查该字段的使用情况及其设置方式,但实现细节隐藏在接口后面。


正确答案


net/http 服务器将 RemoteAddr 设置为 network connection's remote addressstring 形式。该字符串的格式通常为“IP:port”。

在 TCP 连接的情况下(典型场景),网络连接远程地址取自 IP source addressTCP source port

该地址可以是客户端或代理的地址。

net/http 服务器在设置 RemoteAddr 时不考虑标头。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>