限制基于IP的传入TCP连接
C中的套接字是否提供了基于IP限制套接字传入连接数的方法 例如,为了防止一个客户端IP滥发连接,有没有办法限制一个IP可以连接到套接字的次数限制基于IP的传入TCP连接,c,sockets,networking,tcp,C,Sockets,Networking,Tcp,C中的套接字是否提供了基于IP限制套接字传入连接数的方法 例如,为了防止一个客户端IP滥发连接,有没有办法限制一个IP可以连接到套接字的次数 或者像这样的东西需要定制吗?插座中没有类似的东西。你需要定制解决方案,最好在防火墙中考虑它。 < P>我感觉你正在谈论的真正意图是节流,即对于特定的客户机/连接,在给定的时间内只允许固定数量的数据包。这听起来比允许/不允许更多连接更现实 大多数现代语言都提供某种支持,如java或c,但不提供c 然而,这里有一个优雅的方法来实现它。我自己也在生产代码中使用过
或者像这样的东西需要定制吗?插座中没有类似的东西。你需要定制解决方案,最好在防火墙中考虑它。 < P>我感觉你正在谈论的真正意图是节流,即对于特定的客户机/连接,在给定的时间内只允许固定数量的数据包。这听起来比允许/不允许更多连接更现实 大多数现代语言都提供某种支持,如java或c,但不提供c 然而,这里有一个优雅的方法来实现它。我自己也在生产代码中使用过它
标准套接字API中没有这方面的内容,不。使用标准API,服务器代码唯一能做的就是
accept()
客户端连接,检查其IP,然后在需要时关闭连接
在Microsoft的WinSock API中,函数确实有一个回调,在从服务器队列接受连接之前调用该回调。回调函数可以决定接受连接、拒绝连接或将其留在队列中。为什么要询问?你在考虑什么样的服务器?我相信,
connect
-ing比send
-ing花费更多。了解C10K问题,它在防火墙中更容易实现,例如linux上的iptables。