чтение каталога

Ajax

Guest
Чтение расшареных фалов другого компютера

народ!! нужно чтобы скрипт выводил содержимое расшаренных файлов другого компютера в сетке сделал так
<?
$cur=opendir('\\comp');
while ($file = readdir($cur)):
print $file;
endwhile;
closedir($cur);
?>
и не работает!
пишеть что каталог не наден!! и вообще можно ли както получить список всех компютеров в сетке?
 

Ajax

Guest
очеь лаконично как то!! это что??? в php команда такая есть? я так понимаю елси она есть то она выдает список компов.. а как же сделать перовначальный сабж?
 

Ajax

Guest
ну а на кой мне win32 команды то??? мне нужно чтоб пхп скрипт выводил список компютеров и мог читать их расшареные файлы! ну или хотябы чтобы читать их файлы. список могу в ручную попытаться составить!
 

Eugene Bond

sudo rm - rf /
Аякс, не тупи!

Команда винды net view выводит список доступных по локальной сети компьютеров - что тебе и надо.

Рстается дело за малым - выполнить эту команду.

Выполняешь ее используя обратные кавычки (как тебе и написал фиксксксер) или exec() или system(). Вариантов масса.

А потом уже обращаешься к сетевым компьютерам, читаешь каталоги и файлы...


ЗЫ: а вообще-то ПХП не для этого придуман ;-)
 

Ajax

Guest
а как ее юзать может хто обяснить я про exec() чтото и в мануале не ясно
 

Ajax

Guest
Originally posted by Net Dog
.... это .. даа.... =)


дерзай, должно работать:
PHP:
$str_net = `c:/windows/system32/net view`;
preg_match_all("~\\\\\\\\+.*?\s~",$str_net,$m);
print_r($m);
p.s. проверь путь net
не работаеть(( пишет Array ( [0] => Array ( ) )
 

fixxxer

К.О.
Партнер клуба
PHP:
<?

$windir = getenv("windir");

file_exists($cmd = $windir . "\\system32\\net.exe")
  or file_exists($cmd = $windir . "\\net.exe")
  or die("net.exe not found");

if (preg_match_all("/\\\\[^\s]+/",`"$cmd view"`,$result))
  foreach($result[0] as $comp)
    echo $comp . "<br>\n";
else echo "No comps in workgroup"
?>
 

Ajax

Guest
а как читать прочитать содержимое компютера? то есть расшареные папки например
 

Ajax

Guest
народ.. обясните че значит
preg_match_all("/\\\\[^\s]+/",`"$cmd view"`,$result)

а именно че за рег выражение внутри??
и значит чтобы комп прочесть нужно написать
preg_match_all("/\\\\[^\s]+/",`"$cmd view \\comp"`,$result) ?
выражение то же?
 

netdog

net @
во втором случае первый рег не пролетит...
попробуй такой:

$str_net2 = `c:/windows/system32/net view \\\\comp`;
$str_net2 = substr($str_net2,strpos($str_net2,'----------'));
PHP:
preg_match_all("~([a-z]+)[ ]*?[^\n ]+~si",$str_net2,$s);
print_r($s[1]);
 
Сверху