Он должен проверить, открыт ли определенный порт на локальном хосте, если нет, перезагрузиться.
Он запускается в Windows.
Это должно сделать это, протестировано на Windows 7 и работает. Должен работать на всех вкусах NT:
function testPort($port, $timeout = 5) { if(!fsockopen('127.0.0.1', $port, $errno, $errstr, $timeout)) { exec("shutdown.exe /r"); } } testPort(8080);
Используйте розетки вам нужно открыть TCP-соединение (сокет) к локальному узлу с этим конкретным портом. Если соединение установлено, это означает, что порт открыт, в противном случае (если тайм-аут или отклонен), то порт закрыт.
это только для портов TCP
вот пример кода
Для части 'reboot' используйте exec('shutdown -r');
exec
('shutdown -r');
Вы можете написать расширение PHP для этого. Расширение должно использовать Windows API для перезагрузки компьютера, потому что часть проверки сокетов может быть выполнена прямо в PHP. Здесь - вопрос о том, как писать расширения.
InitiateSystemShutdown - это функция Win32 API, которую можно вызвать для фактической перезагрузки.