c++ - 向特定 IP 发送魔法数据包的程序

标签 c++ python c router

我需要编写 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/

相关文章:

c++ - 当类在 C++ 中被销毁时,引用属性是否被销毁?

python - Python operator.xor 的奇怪行为

python - 为什么 jsmin 在 python 子进程中运行时会提前退出?

python - 什么是 "double-boxcar filter"?

c - 如何提高 Haskell 中这种数值计算的性能?

c - 如何在 C 的头文件中正确编写 extern 数组(和 double 组)的声明?

c++ - 使用 openssl 以编程方式查找已协商的 TLS 版本

c++ - 如何使用介子在 C++ 中执行代码覆盖?

c - 害怕在 C 中删除回车符?

c++ - C++ 类中嵌套类型的快捷方式