 |
|
JS Скрипт, получения TCP соединений (по типу netstat -a -n -p TCP), не работает.
Скрипт следующий:
Скрытый текст
PHP код:
var WshShell = new ActiveXObject("WScript.Shell"); var oExec = WshShell.Exec('%comspec% /c netstat -a -n -p TCP');
function ReadAllFromAny(oExec) { if (!oExec.StdOut.AtEndOfStream) return oExec.StdOut.Read(1); return -1; }
var allInput = ""; var tryCount = 0; var c_est=0; var c_tim=0; var c_lis=0;
while (true) { var input = ReadAllFromAny(oExec); if (-1 == input) { if (tryCount++ > 10 && oExec.Status == 1) break; WScript.Sleep(100); } else { allInput += input; if (input=="\n") { WScript.Echo(allInput); WScript.Echo("\n"); if (allInput.search("ESTABLISHED") >0 ) { c_est+=1 } else if (allInput.search("TIME_WAIT") >0) { c_tim+=1 } else if (allInput.search("LISTENING") >0) { c_lis+=1
} allInput="" } tryCount = 0; } }
WScript.Echo ("ESTABLISHED - " + c_est); WScript.Echo ("TIME_WAIT - " + c_tim); WScript.Echo ("LISTENING - " + c_lis);
На windows 7 все работает, на 2008 R2 уходит в безконечный цыкл сыпит пустыми окнами CMD.
А вторая беда в том что скрипт должен запускать софт, а он работает на движке Rhino, и возможно с этим связано что он в упор не видит ActiveXObject
Как можно обойти эти проблемы?
P.S. Идеальным было бы получить через запрос WMI, но я немогу найти решения. Вроде как было что то но в Windows XP. Это действительно так и метода нет?
Спасибо
|
Время: 21:14.
© OSzone.net 2001-