Linux コンキー。 カウンターストライクサーバーの監視
最近、古いコードの記述を詳しく調べてみると、古いプロジェクトに出会いました。 彼が書いたとき、Counter-Strikeクライアントの脆弱性を悪用する偽のCounter-Strikeサーバーを作成することが計画されていました。 後に、バージョン1.5のみが脆弱であることが判明したため、このケースは中止しました。 一般に、最近ソースを見つけたので、これからCounter-Strikeサーバー監視プログラムを作成することにしました。 以下がその結果です。
conkyには、$ {execi}などのパラメーターがあり、任意のプログラムを定期的に実行できます。 将来的にこれを使用します。
実行可能ファイルとソースファイルを含む
アーカイブをダウンロードします。 ご覧のとおり、すべてがJAVAで記述されています(あまり蹴らない、コーシャに書き直したくない、理由がない-ブレーキがない)。したがって、JREをインストールする必要があります。
sudo aptitude install sun-java6-jre
他のディストリビューションでも同じです(パッケージマネージャーのみが異なります)。もちろん、オフバージョンを延期することを決定しない限り(この場合、私はOracleからマナを送ります)
パフォーマンスを確認します。
java -version
次のようなものが出力されます。
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)
そして、仮想マシンは戦いの準備ができています。 次に、monitoring.zipを解凍します。 モニターフォルダーには実行可能ファイルが含まれています。 Javaの主なモットーは「一度書くだけでどこでも実行する」ことなので、何もコンパイルする必要はありません。 このフォルダーにはListServersファイルがあります。 編集します。つまり、コロンを介してポートを使用してサーバーに入ります。 例:
cs.gtn.ru:27015
cs.gtn.ru:27016
IPアドレスを指定できます。
次に、便宜上、フォルダの名前を.monitorに変更し、ホームディレクトリにコピーします。 conkyをインストールし、その構成を編集するだけです。
sudo aptitude install conky
次に、標準の.conkyrc構成をホームフォルダーにコピーします
。 サイトまたは
鉱山 (鉱山は.conkyrcに名前を変更する必要があります)
一般に、今度はkofigを編集する必要があります。
TEXTセクションで、次を入力します。
${color white}${execi 10 cd .monitor/ && java CounterStrikeMonitor}
このプログラムは10秒ごとに実行されます。 conkyを保存して実行します。
次のようなものが得られるはずです。
ソースコードもあります。 ご覧のとおり、すべての情報を表示しているわけではありません。 CounterStrikesParserクラスには、プレーヤーとそのポイントのリストがあります。
private ArrayList users ;
private int[] scores ;
, .
.
UdpConnect - udp . .
CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()
CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :
private ArrayList users ;
private int[] scores ;
private String nameServer ;
private String map ;
private int nomberOfGamers ;
private int maxGamers ;
CounterStrikeMonitor - . :
//
CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);
// 2
// getData() connect
// 2
CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());
parser .ParseFirstUdpPacket(); //
parser .ParseSecondUdpPacket(); //
//
System.out.println("Name: " + parser .getNameServer());
private ArrayList users ;
private int[] scores ;
, .
.
UdpConnect - udp . .
CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()
CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :
private ArrayList users ;
private int[] scores ;
private String nameServer ;
private String map ;
private int nomberOfGamers ;
private int maxGamers ;
CounterStrikeMonitor - . :
//
CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);
// 2
// getData() connect
// 2
CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());
parser .ParseFirstUdpPacket(); //
parser .ParseSecondUdpPacket(); //
//
System.out.println("Name: " + parser .getNameServer());
private ArrayList users ;
private int[] scores ;
, .
.
UdpConnect - udp . .
CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()
CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :
private ArrayList users ;
private int[] scores ;
private String nameServer ;
private String map ;
private int nomberOfGamers ;
private int maxGamers ;
CounterStrikeMonitor - . :
//
CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);
// 2
// getData() connect
// 2
CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());
parser .ParseFirstUdpPacket(); //
parser .ParseSecondUdpPacket(); //
//
System.out.println("Name: " + parser .getNameServer());
private ArrayList users ;
private int[] scores ;
, .
.
UdpConnect - udp . .
CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()
CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :
private ArrayList users ;
private int[] scores ;
private String nameServer ;
private String map ;
private int nomberOfGamers ;
private int maxGamers ;
CounterStrikeMonitor - . :
//
CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);
// 2
// getData() connect
// 2
CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());
parser .ParseFirstUdpPacket(); //
parser .ParseSecondUdpPacket(); //
//
System.out.println("Name: " + parser .getNameServer());
private ArrayList users ;
private int[] scores ;
, .
.
UdpConnect - udp . .
CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()
CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :
private ArrayList users ;
private int[] scores ;
private String nameServer ;
private String map ;
private int nomberOfGamers ;
private int maxGamers ;
CounterStrikeMonitor - . :
//
CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);
// 2
// getData() connect
// 2
CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());
parser .ParseFirstUdpPacket(); //
parser .ParseSecondUdpPacket(); //
//
System.out.println("Name: " + parser .getNameServer());
private ArrayList users ;
private int[] scores ;
, .
.
UdpConnect - udp . .
CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()
CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :
private ArrayList users ;
private int[] scores ;
private String nameServer ;
private String map ;
private int nomberOfGamers ;
private int maxGamers ;
CounterStrikeMonitor - . :
//
CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);
// 2
// getData() connect
// 2
CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());
parser .ParseFirstUdpPacket(); //
parser .ParseSecondUdpPacket(); //
//
System.out.println("Name: " + parser .getNameServer());
All Articles