如何在PHP中实现这样的功能呢?
它应该测试本地主机上是否打开特定端口,如果没有,则重新启动。
它在 Windows 中运行。
It should test if a specific port is open on localhost,if not,reboot.
It's run in windows.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这应该可以做到,在 Windows 7 上测试并工作。应该适用于所有 NT 口味:
This should do it, tested on Windows 7 and working. Should work on all NT flavours:
您可以编写一个 PHP 扩展来做到这一点。扩展应该使用 Windows API 来重新启动机器,因为套接字检查部分可以直接在 PHP 中完成。 这里是一个关于如何编写扩展的问题。
InitiateSystemShutdown 是您可以调用的 Win32 API 函数进行实际的重新启动。
You can write a PHP extension to do that. Extension should use Windows API to reboot the machine because the socket checking part can be done straight in PHP. Here is a question on how to write extensions.
InitiateSystemShutdown is the Win32 API function you can call to do the actual rebooting.
使用插座
您需要使用该特定端口打开到本地主机的 TCP 连接(套接字)。如果连接建立,则表示端口打开,否则(如果超时或拒绝),则端口关闭。
仅适用于 TCP 端口
这里有一个示例代码
对于“重新启动”部分,使用
exec
('shutdown -r');
Use sockets
you need to open a TCP connection (socket) to the localhost with that specific port. If the connection is establish, it means the port is open, otherwise (if timed-out or rejected), then the port is closed.
that's only for TCP ports
here's a sample code
For the 'reboot' part, use
exec
('shutdown -r');