Hallo!
In diesem Thread möchte ich euch ein Script von mir zeigen/der Öffentlichkeit geben... Damit kann man in PHP einen Vote an einen Minecraft Server senden(z.b. für eine Serverliste/oder eben leicht abgeändert für einen Austausch der Daten/Befehle/...) Das Script hab ich in anderer Form mithilfe einer mysteriösen Suchmaschine(nicht elgooG) gefunden. Das Gefundene habe ich umgeschrieben/abgeschrieben/mich daran orientiert für eine Serverliste, von der ich mich aufgrund Zeit- & Motivationsmangels getrennt habe. Dennoch möchte ich dieses Skript public stellen. Dieses ist nun Standalone fähig und vollständig kommentiert, das heißt keine externe Library ist mehr notwendig(RSA PHP Libary oder so) und sollte für den Anfänger auch verständlich sein. Ihr könnt alternativ auch selber googeln.
Mit dem Code könnt ihr machen was ihr wollt, ist OOP, müsst ihn nur
einbinden.
Der Code:
Ich hoffe ihr könnt damit was anfangen... und es nach euren Wünschen anpassen.
Edit:
Anmerkungen umgesetzt. Danke an jedes Feedback!
In diesem Thread möchte ich euch ein Script von mir zeigen/der Öffentlichkeit geben... Damit kann man in PHP einen Vote an einen Minecraft Server senden(z.b. für eine Serverliste/oder eben leicht abgeändert für einen Austausch der Daten/Befehle/...) Das Script hab ich in anderer Form mithilfe einer mysteriösen Suchmaschine(nicht elgooG) gefunden. Das Gefundene habe ich umgeschrieben/abgeschrieben/mich daran orientiert für eine Serverliste, von der ich mich aufgrund Zeit- & Motivationsmangels getrennt habe. Dennoch möchte ich dieses Skript public stellen. Dieses ist nun Standalone fähig und vollständig kommentiert, das heißt keine externe Library ist mehr notwendig(RSA PHP Libary oder so) und sollte für den Anfänger auch verständlich sein. Ihr könnt alternativ auch selber googeln.
Mit dem Code könnt ihr machen was ihr wollt, ist OOP, müsst ihn nur
PHP:
<?php
// Hier einfügen(vor der nächsten Zeile) oder direkt das Script mit 'require_once "votifier.php";' einbinden
$voteobjekt = new PHPVotifier();
// Server-IP/Domain(String), Port(Int)(Standard: 8199), Username(String), Public Key(String) [evt. von MySQL laden]
$voteobjekt->vote("localhost", 8199, "jens1o", "******Public Key******");
?>
Der Code:
PHP:
<?php
class PHPVotifier {
public function vote($server_ip, $server_port, $username, $public_key) {
// Informationen zum Vote:
// 1 = Serverliste
// 2 = Username(von dem der gevotet hat)
// 3 = IP Addresse(Identifizierung)
// 4 = Zeit des Votes
$votetext = "VOTE\n" . "jens-hausdorf.de\n" . $username ."\n" . $_SERVER["REMOTE_ADDR"] . "\n" . time() . "\n";
// Ups? Da fehlen noch Bytes! Damit
// die Anfrage nur 256 Bytes groß ist(wichtig!):
// Wieviel fehlen noch?
$leftover = (256 - strlen($votetext)) / 2;
// Restliche Bytes dazu packen(als x0/NULL)
while ($leftover > 0) {
$votetext .= "\x0";
$leftover--;
}
// Öffentlicher Key vorbereiten...
$key = wordwrap($public_key, 65, "\n", true);
$key = "-----BEGIN PUBLIC KEY-----\n" . $key . "\n-----END PUBLIC KEY-----";
// Key encodieren/standalone Version mit OpenSSL
// (sollte vorinstalliert sein bei Hostern eurer Wahl)
// falls nicht, kann nachinstalliert werden.
try {
openssl_public_encrypt($votetext, $encrypted, $key);
} catch(Exception $e) {
exit("Fehler! " . $e->getMessage());
}
// Verbindung mit Server aufbauen
// TIMEOUT 2 SEKUNDEN -> Check: ok?
$socket = fsockopen($server_ip, $server_port, $errno, $errstr, 2);
if(!$socket) {
exit("Error: " . $errstr);
} else {
echo "Yooo/alles ok";
}
// SEND DAT PACKAGE... Have fun :D
// Fertig! Der Rest macht der Server
fwrite($socket, $encrypted);
return true;
}
}
?>
Ich hoffe ihr könnt damit was anfangen... und es nach euren Wünschen anpassen.
Edit:
Anmerkungen umgesetzt. Danke an jedes Feedback!
Zuletzt bearbeitet: