0

私のゲーム サーバーは現在、すべてのソケットからソケットを受け入れています。しかし、特定の IP を攻撃からブロックするにはどうすればよいでしょうか? 彼らが私のサーバーか何かをクラッシュさせたいのなら。私はSFMLライブラリ、C++を使用しています。

4

3 に答える 3

2

TCP では、プログラム (または使用しているライブラリ) が を呼び出すaccept(2)とき、2 番目の引数はクライアントのアドレスを示す出力です。

UDP には接続はありませんがrecvfrom(2)、 と同様accept(2)に、ピアのアドレスを提供する があります。そのため、好きではない仲間を無視することができます。

または、何らかのファイアウォール アプライアンスの背後でサーバーを実行してそこにルールを追加するか、ホスト マシンでソフトウェア ファイアウォールとして iptables などを使用することもできます。

SFML にはと があり、空のアドレスを引数として渡すSocketTCP::Acceptと、どちらもピアのアドレスを取得します。SocketUDP::Receive

于 2011-07-10T16:51:12.330 に答える
0

WSAAccept()Windowsでは、WinSock 2.xには、接続要求を条件付きで受け入れる/拒否するために使用できるオプションのコールバックパラメーターがあります。クライアントIP/ポートは使用可能なパラメーターの1つです。

于 2011-07-14T22:10:23.183 に答える
0

一部のIPをブロックする具体的な方法はわかりませんが、元のIPを特定した後、リクエスト(おそらくあなたの場合は接続リクエスト)を確実に拒否できます。ブロックされた IP (またはブラックリストに登録された IP) のリストを維持し (簡単に追加/削除できるように構成可能にします)、ブラックリストに登録された IP のいずれかから送信された場合はリクエストを拒否します。

于 2011-07-10T16:51:44.213 に答える