如何在PHP中实现这样的功能?

时间:2010-01-27 11:47:13

标签: php port reboot

它应该测试特定端口是否在localhost上打开,如果没有,重启。

它在Windows中运行。

3 个答案:

答案 0 :(得分:1)

应该这样做,在Windows 7上测试并正常工作。应该适用于所有NT口味:

function testPort($port, $timeout = 5) {
    if(!fsockopen('127.0.0.1', $port, $errno, $errstr, $timeout)) {
        exec("shutdown.exe /r");
    }
}

testPort(8080);

答案 1 :(得分:0)

您可以编写PHP扩展来执行此操作。扩展应使用Windows API重新启动计算机,因为套接字检查部分可以直接在PHP中完成。 Here是关于如何编写扩展名的问题。

InitiateSystemShutdown是您可以调用以实际重新启动的Win32 API函数。

答案 2 :(得分:0)

使用套接字 您需要使用该特定端口打开与localhost的TCP连接(套接字)。如果连接建立,则表示端口已打开,否则(如果超时或拒绝),则端口关闭。

仅适用于TCP端口

here's a sample code

对于“重启”部分,请使用exec ('shutdown -r');