我需要编写 C、C++、.bat 或 Python 程序。它应该检测是否有人尝试从路由器/防火墙外部通过某个端口(25570)连接到某个IP地址(192.168.1.149)。然后程序将向 IP 地址 (192.168.1.149) 发送一个魔术包。然后魔法包将唤醒计算机。因为计算机将处于 sleep 模式,所以代码可能必须位于网络中的另一台计算机上(我不希望这样)。甚至可能在路由器或 DNS 中。我有一台 Windows 7 电脑。这是计算机应该处于 sleep 模式。我需要回答这个问题的人给我一个指导我不是一个真正优秀的编码员,所以这就是我问这个问题的原因
这是我的路由器信息:
https://www.asus.com/Networking/RTN65U/
抱歉,我有一个非常旧的 DNS,所以我无法向您提供规范。
我该怎么做?
谢谢。
最佳答案
这是我在一台网络机器上使用的一些 Python 代码来唤醒另一台网络机器。不确定我最初是从哪里得到它的,但效果很好。希望您可以根据自己的目的进行调整。
#!/usr/bin/env python
import socket
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto('\xff'*6+'\x00\x11\x22\x33\x44\x55'*16, ('192.168.0.255', 9))
print "Attempted to wake host"
请注意,\x00\x11
等内容是要唤醒的机器的MAC地址,应替换为您机器的MAC地址(转换为十六进制字节)。 192.168.0.255
是网络的广播地址,同样应替换为您的地址。
关于c++ - 向特定 IP 发送魔法数据包的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18163455/