000
11.01.2005, 21:13
Spike
|
ich will ein script schreiben, dass alle in einer arbeitsgruppe liegenden rechner erkennt und alle freigaben von ihm liest und die inhalte der ordner anzeigt.
also das mit den ordnern ist ja keine problem, nur komm ich mit opendir('\\\\workgroup') nicht weiter, sondern bekomm ein failed to open dir: Invalid argument.
habt ihr ideen wie ich so etwas realiesieren kann. mir fehlt halt der richtige denkansatz, wie ich dieses problem lösen kann.
edit:
ich jetzt schon von woanders hilfe erhalten. per shell_exec('net view') gehts
damit der thread nicht umsonst war hier mein ganzer quick&dirty source: das script sucht in diesem fall nach allen avi, mpg und mpeg dateien.
<?php ini_set('max_execution_time', "600"); // max 10 minutes
function matchext($filename) { ereg(".*\.([_A-Za-z0-9]{0,})$",$filename,$ext); // get fileextension $ext = strtolower($ext[1]); switch ($ext) { case "avi": case "mpg": case "mpeg": return true; default: return false; } }
function scan($path) { global $logfile; $handle = opendir($path); while ($FolderOrFile = readdir($handle)) { if($FolderOrFile != '.' && $FolderOrFile != '..') { if(is_dir("$path\\$FolderOrFile")) scan("$path\\$FolderOrFile"); elseif (is_file("$path\\$FolderOrFile") && matchext($FolderOrFile)) { fwrite($logfile, "$path\\$FolderOrFile\n"); } } } closedir($handle); }
$serverlist = shell_exec('net view'); // find server $aserver = explode("\n", $serverlist);
foreach ($aserver as $line) { if (substr($line,0,2) == "\\\") // is it a server ? { $line = explode(' ',$line); // no server-descripton please $aserver2[] = $line[0]; // my serverarray } }
$logfile = fopen("biglog.txt", "a");
foreach ($aserver2 as $server) { $folderlist = shell_exec('net view '.$server); // show me your resources $temp = explode("-------------------------------------------------------------------------------\n", $folderlist); $afolder = explode("\n", trim($temp[1])); unset($afolder[count($afolder)-1]); // delete last line (success line) foreach ($afolder as $resource) { $resource = explode(' Platte', $resource); // only resourcename - works only on german windows scan($server.'\\'.trim($resource[0])); // scan this resource } }
fclose($logfile); ?>
--
Kill? Box? Killbox! Die Intelligenz ist eine Konstante, nur die Bevölkerung wächst.
Dieser Beitrag wurde am 11.01.2005 um 23:47 von Spike_900 bearbeitet.
|
|
Profil || Suche
|