登录
首页 >  Golang >  Go问答

获取本地HTTP服务器端口信息的无侵入式方法

来源:stackoverflow

时间:2024-03-21 17:03:22 211浏览 收藏

在 HTTP 处理程序中,获取接收请求的服务器端口通常需要使用 `http.Hijacker` 来劫持 TCP 连接。然而,本文介绍了一种无侵入式的方法,通过 `http.LocalAddrContextKey` 从请求上下文获取本地地址,再从地址中提取 TCP 端口。这种方法无需劫持连接,更简洁、高效。

问题内容

在http处理程序中,有没有一种方法可以获取接收请求的服务器的端口,而不使用http.Hijacker来获取TCP连接,如果没有,有没有办法劫持连接但仍然使用提供了http.ResponseWriter


解决方案


使用 http.LocalAddrContextKeyrequest context 获取本地地址。

a, ok := req.context().value(http.localaddrcontextkey).(net.addr)
if !ok {
    // handle address not found
}

从地址获取tcp端口:

ta, ok := a.(*net.TCPAddr)
if !ok {
    // handle unknown address type
}
port := ta.Port

理论要掌握,实操不能落!以上关于《获取本地HTTP服务器端口信息的无侵入式方法》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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