pskill.exe ausführen?

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

pskill.exe ausführen?

Postby BBatBSE » 05. June 2007 12:29

Hi … ich bastle gerade an nem kleinen Script, der es mir ermöglichen soll, meinen Gameserver zu beenden…

Ihn zu starten ist kein Problem.. der Script läuft, inkl. Fehlerausgabe, etc..

Aber ihn zu stoppen krieg ich net hin -.-

Hab folgenden Code bisher…

Code: Select all
<?php

$out      =          exec("\"C:\\WINNT\\system32\\cmd.exe\" /c netstat -abno", $consolelines);

function array_isearch($str,$array)
            {
                        foreach($array as $k=>$v)
                                   {
                                               if(strpos(strtolower($v), $str) != false)

                                                           {
                                                                       return $v;
                                                           }

                                               }
                        return false;
            }

$output =          split("[\n\r\t ]+",array_isearch("XXX.XXX.XXX.XXX:1716",$consolelines));

exec("/c'C:\\Programme\\pstools\\pskill.exe\ -t $output[4]'");

?>


Erklärung:

Ich führe die Windoof-Console aus und packe die Daten aus „netstat –abno“ in einen Array…..

Dann schreib ich ne Funktion um Später einen ungefähren Treffer zu finden…. Ließ sich nicht über „array_search“ realisieren….

So… dann splitte ich den erhaltenen Array auf, sodass der formatiert wird und ich nach der IP suchen kann,….

So….

So auf gesplittet gibt der Array dann folgendes aus

[ 0 ] =>
[ 1 ] => UDP
[ 2 ] => 85.14.220.223:1716
[ 3 ] => */*
[ 4 ] => PROCESS-ID

Dann will ich das Tool „pskill.exe“ ausführen…

Aber wenn ich ausführen möchte, kommt einfach nichts zurück -.-

Server läuft weiter, cmd.exe und pskill.exe werden ordnungsgemäß wieder beendet….

SERVER LÄUFT NOCH!?

Wenn ich den Befehl so in die Konsole eingebe, funktioniert es..

Tjoa… also wird wohl entweder die cmd.exe bzw pskill.exe nicht über Xampp (Apache) freigeben sein… oder?
BBatBSE
 
Posts: 3
Joined: 05. June 2007 12:21
Location: Kassel

Postby BBatBSE » 05. June 2007 22:03

ok hat sich erledigt... habs hinbekommen :)
BBatBSE
 
Posts: 3
Joined: 05. June 2007 12:21
Location: Kassel

Postby DJ DHG » 05. June 2007 22:47

Moin Moin!

Und wie? Könnte anderen Usern vllt. mal weiterhelfen....

mfg DJ DHG
User avatar
DJ DHG
AF Moderator
 
Posts: 2455
Joined: 27. December 2002 13:50
Location: Kiel

Postby BBatBSE » 06. June 2007 16:18

Code: Select all
exec("\"C:\\WINNT\\system32\\cmd.exe\" /c netstat -abno", $consolelines);

            function array_isearch($str,$array)
               {
                  foreach($array as $k=>$v)
                     {
                        if(strpos(strtolower($v), $str) != false)
                           {
                              return $v;
                           }
                        }
                  return false;
               }

            $output   =   split("[\n\r\t ]+",array_isearch("$ip_address:$game_port",$consolelines));

            exec("\"C:\\WINNT\\system32\\cmd.exe\" /c taskkill /pid $output[4] /t /f", $errorlines);


Erklärung:

Ich führe die Windows Funktion netstat über die cmd.exe aus und erhalte so über die Rückgabe $consolelines einen String alle ausgeführten Netzwerkverbindungen, ... unter anderem auch die Prozess-ID.

Dann spalte ich die durch die Funktion array_isearch erhaltenen einzel-array's auf, um eine Formartierung zu erhalten, welche unter der ausgabe mit "print_r" Beispielsweise folgendes ausgibt:
[ 0 ]=>
[ 1 ]=> UDP
[ 2 ]=> usw

In dem Index 4 steht dann meine Prozess-ID, die ich für die Windows-Server Funktion "taskkill" (system32/taskkill.exe) benötige.

Diese Windows-Funktion führe ich nun auch über exec aus.
BBatBSE
 
Posts: 3
Joined: 05. June 2007 12:21
Location: Kassel


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 53 guests