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());



Source: https://habr.com/ru/post/J100924/


All Articles