Hallo,
ich habe ein Perl Script im Internet gefunden, welches einen TCP Port anlegt und auf diesen lauscht. Dazu gibt es auch ein PHP Client Script.
Das ist das Perl Script:
Perl
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my $port = 8055; # Port angeben
my $socket = new IO::Socket::INET (LocalPort => $port, Listen => 1, Proto => 'tcp', Reuse => 1); # Socket erstellen
print "Server gestartet...\n"; # Benutzer volllabern
while() # Dauerschleife zum horchen
{
my $client = $socket->accept(); # Ankommende Socket Verbindungen annehmen
$client->recv(my $response, 1024); # Befehl empfangen
if($response eq "start") # Wenn "start" gesendet wurde
{
system("cd /root && whoami > lol"); # Befehl auf Konsole ausführen
$client->send("Server gestartet"); # Rückgabe an Client senden
}
if($response eq "stop") # Wenn "stop" gesendet wurde
{
system("BEFEHL ZUM SERVER STOPPEN"); # Befehl auf Konsole ausführen
$client->send("Server gestoppt"); # Rückgabe an Client senden
}
}
Alles anzeigen
Und das das PHP Script:
PHP
<?php
$host = 'localhost'; // Host
$port = 8055; // Port auf dem das Perl Script läuft
$action = 'start'; // Variable für die Aktion die ausgeführt werden soll
$socket = fsockopen($host,$port,$errno,$error,5); // Verbindung aufbauen
fwrite($socket, $action); // Befehl an Socket senden
while (!feof($socket)) // Socket lesen
{
$tmp = fgets($socket); // Rückgabe holen
echo $tmp; // Rückgabe ausgeben
}
fclose($socket); // Socket schließen
?>
Alles anzeigen
Und zwar möchte ich nun das man ein Passwort mit übergibt, damit nicht jeder auf den Socket zugreifen kann.
Nur wie mache ich das am besten.
Übergebe ich beides mit in der Action also z.B.
$action = 'hierdaspasswort.undhierderbefehl'; und zerlege es dann mit einem Explode oder kennt ihr eine bessere Lösung?
Julius