登录
首页 >  Golang >  Go问答

在Golang中,根据端口号查找对应的服务

来源:stackoverflow

时间:2024-02-17 16:00:26 408浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《在Golang中,根据端口号查找对应的服务》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我正在使用 go 中的 net 包。虽然我看到许多有用的 lookup* 函数,但它们似乎都没有返回给定端口所使用的服务。

例如(这纯粹是编造的):

service, err := net.LookUpService(23)
// service is ssh

我发现这实际上可以在节点中使用 dns.lookupservice 来实现,其中提供的回调实际上是提供服务的。 go 中可能有类似的事情吗?我发现给定服务和网络(例如 tcp、udp)它返回端口的情况相反,但我想要相反的情况。我希望这是有道理的。


解决方案


查看包 netdb https://godoc.org/honnef.co/go/netdb

netdb包为protoent和servent提供了Go接口 netdb.h 中定义的结构

通过解析 /etc/protocols 和使用纯 Go 实现 /etc/服务

具体来说:

函数 GetServByPort

func GetServByPort(端口 int, 协议 *Protoent) *Servent

GetServByPort 返回给定端口号的 Servent,并且 协议。如果协议为零,则第一个与端口匹配的服务 返回号码。

本篇关于《在Golang中,根据端口号查找对应的服务》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

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