Cのソケットは、IPに基づいてソケットへの着信接続の数を制限するための何らかの方法を提供しますか?
たとえば、1つのクライアントIPが接続をスパムするのを防ぐために、IPがソケットに接続できる回数を制限する方法はありますか?
それとも、このようなものはカスタムメイドである必要がありますか?
Cのソケットは、IPに基づいてソケットへの着信接続の数を制限するための何らかの方法を提供しますか?
たとえば、1つのクライアントIPが接続をスパムするのを防ぐために、IPがソケットに接続できる回数を制限する方法はありますか?
それとも、このようなものはカスタムメイドである必要がありますか?
あなたが話している本当の意図は、スロットリング、つまり特定のクライアント/接続に対して、特定の時間に固定数のパケットのみを許可することだと思います。これは、より多くの接続を許可/禁止するよりも現実的な使用シナリオのように聞こえます。
現代語のほとんどは、javaやc#などのある種のサポートを提供しますが、cは提供しません。
ただし、これを実装するための洗練されたアプローチがあります。私自身、本番コードで使用しています。
ソケットにはそのようなものはありません。カスタムソリューションが必要であり、ファイアウォールでそれを行うことを検討することをお勧めします。
そのための標準ソケットAPIには何もありません。標準のAPIを使用すると、サーバーコードで実行できるのはaccept()
、クライアント接続、IPの確認、および必要に応じて接続を閉じることだけです。
MicrosoftのWinSockAPIの場合、WSAAccept()
関数には、サーバーのキューから接続が受け入れられる前に呼び出されるコールバックがあります。コールバック関数は、接続を受け入れるか、接続を拒否するか、キューに残すかを決定できます。