Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
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-Quellcode:<?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.
zum Seitenanfang zum Seitenende Profil || Suche