当前位置: 首页 > 后端技术 > Python

当你知道如何用Python远程开关机时,你就有机会和你的女神“偶遇”了!

时间:2023-03-26 13:26:19 Python

谁说程序员只能单身?谁说程序员没机会“偶遇”女神?今天一一破解谣言,其实大部分程序员都没有用“正确的方式”使用技术!!!学会以下操作后,拥抱女神指日可待。你一定听过或实践过用Python关机,那么用Python开机呢?这是教您如何使用Python启动的绝佳方式。本文的目标是远程启动的原理。Python远程启动代码实现Python关机。这就是WOL技术Wake-On-Lan。电脑关机或休眠时,网卡和主板仍有微弱供电。当然,电源必须插上并用电缆连接。因此,即使在电脑关机的情况下,网卡仍然具有一定的运行能力。它可以监听电脑外的网络广播信息,当它发现特定格式的信息时,就会启动电脑。当前的大多数主板都支持它。您只需要在网络适配器的属性中配置以下两个选项。下图中的勾是不能选中的。一定要保证网卡关机后还有电。网口灯亮。这个特定的数据还有一个很好听的名字,叫做MagicPacket。一般使用UDP协议进行广播。端口一般为7或9。magic数据包总是“FFFFFFFFFFFFFF”连续6个“FF”,后面是MAC地址信息,一旦网卡检测到数据包的内容,就会唤醒目标计算机。我们来看看代码是怎么写的。代码涉及UDP网络编程,后面专门写网络编程。这个功能只需要输入目标电脑的MAC地址,在局域网中的另一台电脑上运行这个程序(当然,如果你的电脑有公网IP,那么在公网也是可以的),目标电脑可以自动开机。代码如下,代码本身很短,原理也很简单:defwake_up(request,mac='DC-4A-3E-78-3E-0A'):MAC=macBROADCAST="192.168.0.255"iflen(MAC)!=17:raiseValueError("MAC地址应设置为'XX-XX-XX-XX-XX-XX'")mac_address=MAC.replace("-",'')data=''.join(['FFFFFFFFFFFF',mac_address*20])#构造原始数据格式send_data=b''#将原始数据转换为十六进制字节数组,foriinrange(0,len(data),2):send_data=b''.join([send_data,struct.pack('B',int(data[i:i+2],16))])print(send_data)#通过socket广播出去,为了避免失败,间隔广播三次try:sock=socket。socket(socket.AF_INET,socket.SOCK_DGRAM)sock.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)sock.sendto(send_data,(BROADCAST,7))time.sleep(1)sock.sendto(send_data,(BROADCAST),7))time.sleep(1)sock.sendto(send_data,(BROADCAST,7))returnHttpResponse()print("Done")exceptExceptionase:returnHttpResponse()print(e)Python关机比较容易,也有很多互联网上现成的解决方案。他们大多使用程序扫描邮箱,如果收到带有关机相关关键字的邮件,程序会自动执行关机命令。另外,如果你只是在局域网内关机,或者你有公网IP,也可以在本地电脑上启动一个服务,比如使用Flask在5000端口运行。发送一条指令到地址5000。需要在本机程序中有执行关机的命令。importosos.system('shutdown-s-t00')那么准备工作就已经完成了。接下来就是找到你女神的电脑,远程关机几次。当所有人都无能为力的时候,就是你大显身手的时候了,不是吗?高手操作后回到座位开始远程解决!!!就是这么“简单粗暴”