当前位置: 首页 > 面试题库 >

在Go中仅接受来自Localhost的HTTP连接?

韦辰钊
2023-03-14
问题内容

我有一个简单的HTTP Server站在Golang中:

h := http.NewServeMux()
h.Handle("/somepath", MyHandler)

s := &http.Server{
    Addr:    "1234",
    Handler: h,
}

s.ListenAndServe();

调用方不是localhost的地方断开连接的最佳方法是什么?目前,我正在考虑检查底层的连接信息,并确保IP地址为127.0.0.1,但这在最终删除连接之前浪费了大量资源(并运行了大量Go代码)。理想情况下,我可以检测Golang服务器以基于IP地址丢弃初始TCP
SYN数据包,而根本不创建TCP连接(或显示该端口正在侦听)。

前进的最干净的道路是什么?


问题答案:

VonC的评论转换为答案。

您可以通过host:porthttp.Server.Addr或中设置来绑定主机http.ListenAndServe

它们在net.Listen内部使用。

来自net.Listen

对于TCP和UDP,laddr的语法为“ host:port”,例如“
127.0.0.1:8080”。如果省略了host,如“:8080”,则Listen在所有可用接口上侦听,而不仅仅是在给定主机地址的接口上侦听。



 类似资料:
  • 问题内容: 我已经在机架空间上启动了CentOS服务器并执行了‘d。然后。因此,只是准系统。 我可以通过ssh(22)远程访问其IP地址,所以DNS或其他任何问题(我认为…)都没有问题,但是当我尝试通过浏览器等通过端口80进行连接时,拒绝连接。 但是,从本地主机,我可以使用telnet(80),甚至可以使用lynx并毫无问题地得到服务。telnet从外部(我的房子,我的学校,当地的咖啡店等)在22

  • 我有以下配置: 两个正在运行的Tomcat实例运行Apache Camel 2.20.2,它们使用竞争消费者概念来读取同一JMS消息队列的消息 碰巧,其中一个Camel实例连接到从属代理,即使从属代理未处于活动状态(即,从日志文件中可以看出,它没有锁定CAHADB)。 当这种情况发生时,驼峰实例上的路由被阻塞,我们得到一个,这会阻塞路由,消息正在排队。 从属代理接受来自客户端应用程序的连接(在我们

  • 德比文件说 德比。博士。主机名=主机名 该属性监听主机的网络连接,即接受来自主机的连接。如果指定了0.0.0.0,则接受来自任何主机的连接。 现在,我有三台远程计算机,,,。 我的derby服务器正在hostA上运行 所以,我写了 然而,这是行不通的。还有别的办法吗? 编辑: 当我将属性设置为 然后和不能连接到服务器。他们低于例外 JAVAsql。SQLNonTransientConnection

  • 我刚刚开始使用Sockets,对于我当前的项目,我需要能够从客户端控制我的程序,但是如果我的项目合作伙伴想同时使用他的客户端,服务器不会向他发送“您已连接”消息,如连接类所示。所以我假设服务器不同时接受多个客户端。我尝试过使用类Connection的Thread,但这也不会向第二个客户端发送消息“您已连接”。我在这里做错了什么? 这是我用来同时连接多个用户的线程: 编辑:附加信息 在第一个客户端连

  • 问题内容: 因为数据量不是我的Web应用程序需要加载的大小,它有时会变得很慢,因此我决定添加一些jQuery ajax函数以根据请求加载某些数据,然后将其保存在缓存中。 我想知道的是如何限制任何来自本地主机/相同服务器/相同ip的请求或仅来自本地/相同服务器/相同ip的请求,这样才能避免从外部对我的应用程序进行任何调用? 这意味着我的返回数据的php函数仅应从本地主机请求返回数据。 我的Web应用

  • 我们在针对带IDP的SAML SSO的Java应用程序中使用了(v1.0.3)。 null null