Python3.4实现远程控制电脑开关机

yizhihongxing

Python3.4实现远程控制电脑开关机攻略

准备工作

为了实现远程控制电脑开关机,需要满足以下几个条件:

  • 两台电脑在同一局域网内
  • 接收控制开关机指令的电脑开启远程连接功能
  • 控制开关机指令发送电脑安装有Python3.4或以上版本

在满足以上条件的情况下,我们就可以开始进行远程控制开关机了。

第一步:开启远程管理服务

在接收指令的电脑上,需要开启远程管理服务,这样在发送控制指令的电脑上就可以通过远程连接控制该电脑的开关机。

具体步骤如下:

  1. 打开文件浏览器,在计算机上右键,选择“管理”选项,打开计算机管理窗口。
  2. 在窗口中选择左侧“本地服务和应用程序”下的“服务”选项。
  3. 在列表中找到服务名为“远程桌面服务用户模式”,然后右键单击该服务,选择“属性”选项。
  4. 在属性页面中,找到“常规”选项卡,在“启动类型”中选择“自动”。然后在“服务状态”中单击“启动”按钮,启动服务。

完成以上步骤后,就可以开始进行远程控制电脑的开关机功能了。

第二步:使用Python远程控制电脑开关机

在完成了远程管理服务的设置后,我们需要用Python编写控制开关机的代码,以方便进行远程控制。

具体步骤如下:

  1. 在控制开关机指令发送电脑上,用文本编辑器创建一个名为“wake_on_lan.py”(此名称可自定义)的文件,将下面的代码复制到该文件中,并保存。
#导入Python的socket库
import socket

def WakeOnLan(ethernet_address):
  #设定MagicPacket,第一部分为六个FFs,后面为16次受电脑MAC地址重复
  MagicPacket = bytes.fromhex('FF' * 6 + ethernet_address * 16)
  #利用Python的socket库发送MagicPacket到广播
  with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock:
    sock.bind(('0.0.0.0',12345))
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    #MagicPacket要发送到的广播地址
    #可以通过改动最后一个参数,获取本地广播地址
    sock.sendto(MagicPacket, ('192.168.1.255', 9))

if __name__ == '__main__':
  #PC的MAC地址需转换为16进制,格式为"XX-XX-XX-XX-XX-XX"
  WakeOnLan(['XX', 'XX', 'XX', 'XX', 'XX', 'XX'])
  1. 在第一条指令的后面粘贴以下代码,实现控制指令的发送和接收。在代码中,将ip_address赋值为接受开关机指令的电脑的IP地址。
#导入Python的socket库
import socket

#定义发送开机指令的函数
def turn_on(ip_address, port):
    #发送消息内容为"0",表示开机(具体内容可根据需求改动)
    message = bytes("0", 'utf-8')
    #使用IPv4、TCP协议进行套接字连接
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #使用它来连接开机电脑的IP地址和端口
    client_socket.connect((ip_address, port))
    #发送消息内容
    client_socket.sendall(message)
    #关闭套接字
    client_socket.close()

#定义发送关机指令的函数
def turn_off(ip_address, port):
    #发送消息内容为"1",表示关机(具体内容可根据需求改动)
    message = bytes("1", 'utf-8')
    #使用IPv4、TCP协议进行套接字连接
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #使用它来连接开关机电脑的IP地址和端口
    client_socket.connect((ip_address, port))
    #发送消息内容
    client_socket.sendall(message)
    #关闭套接字
    client_socket.close()

#主函数
if __name__ == '__main__':
    #定义要连接的电脑的IP地址和端口    
    ip_address = '192.168.1.101'
    port = 5000

    #等待用户输入
    command = input("请输入需要执行的指令(开机请输入 turn_on,关机请输入 turn_off): ")
    #判断用户输入,调用相应的函数
    if command == "turn_on":
        #调用发送开机指令的函数
        turn_on(ip_address, port)
    elif command == "turn_off":
        #调用发送关机指令的函数
        turn_off(ip_address, port)
    else:
        print("请输入正确的指令")

完成以上步骤后,就可以通过在该电脑运行脚本并输入指令实现远程控制另一台电脑的开关机。

示例

下面介绍两种示例,分别是控制台应用和网页应用。

控制台应用示例

在控制开关机指令发送电脑上,打开Terminal或命令提示符,进入脚本所在目录,输入以下命令:

python3 wake_on_lan.py

然后输入以下命令,想要控制的电脑的IP地址需要根据实际情况进行替换。

python3 remote_control_pc.py 192.168.1.101

接下来根据需要输入“turn_on”或者“turn_off”,即可完成远程控制该电脑的开关机。

网页应用示例

我们还可以使用Flask(Python Web框架)来实现远程控制网页应用。

在操作的电脑上,打开终端或命令提示符,执行以下命令:

pip install flask

安装完成Flask框架后,再执行以下命令创建一个名为“app.py”的文件,并将以下代码复制到该文件中,保存。

#导入Flask框架
from flask import Flask, render_template, request
from remote_control_pc import turn_on, turn_off
import os

#创建Flask应用实例
app = Flask(__name__)

#首页
@app.route('/')
def index():
    return render_template('index.html')

#开机操作
@app.route('/turn_on')
def turn_on_action():
    #目标电脑的IP地址
    ip_address = '192.168.1.101'
    #目标电脑的端口(需要与remote_control_pc.py的端口匹配)
    port = 5000
    #发送开机指令
    turn_on(ip_address, port)
    return '已经执行开机操作!'

#关机操作
@app.route('/turn_off')
def turn_off_action():
    #目标电脑的IP地址
    ip_address = '192.168.1.101'
    #目标电脑的端口(需要与remote_control_pc.py的端口匹配)
    port = 5000
    #发送关机指令
    turn_off(ip_address, port)
    return '已经执行关机操作!'

if __name__ == '__main__':
  app.run(host='0.0.0.0', port=os.environ.get('PORT', 5000))

在同级目录下再创建一个名为“templates”的文件夹,然后在该文件夹中创建一个名为“index.html”的静态HTML文件,并将以下代码复制到该文件中,并保存。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>远程电脑开关机控制</title>
</head>
<body>
  <header>
    <h1>远程电脑开关机控制</h1>
  </header>
  <form action="/turn_on" method="get">
    <button type="submit">开机</button>
  </form>
  <form action="/turn_off" method="get">
    <button type="submit">关机</button>
  </form>
</body>
</html>

在完成以上步骤后,就可以通过在执行该脚本,然后在浏览器访问“http://127.0.0.1:5000”来访问控制开关机网页页面。

当然,为了通过公网进行远程访问,你需要架设一个公网服务器,并在路由器中进行端口映射。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3.4实现远程控制电脑开关机 - Python技术站

(1)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Python 由字符串函数名得到对应的函数(实例讲解)

    要想在Python中通过字符串来调用函数,我们可以利用globals()内置函数来得到全局命名空间的字典对象,然后通过字典键对应的方式来获取到函数对象。具体步骤如下: 首先定义需要调用的函数,例如下面的示例函数: python def add(a, b): return a + b 接着定义一个字符串变量作为函数名,如下所示: python func_nam…

    python 2023年6月5日
    00
  • 对Python中数组的几种使用方法总结

    对Python中数组的几种使用方法总结 在Python中,数组以列表(list)的形式出现,可以通过下标来访问,也可以进行增删改查等操作。本文将会介绍几种常见的Python数组使用方法。 1. 创建数组 创建数组可以使用[]或list(),例如: arr1 = [1, 2, 3, 4, 5] arr2 = list(range(1, 6)) 2. 访问数组元…

    python 2023年6月5日
    00
  • 学习Python列表的基础知识汇总

    学习Python列表的基础知识汇总 在Python中,列表(List)是一种常用的数据类型,它可以存储多个元素,并且这些元素是同一种或不同的数据类型。本文将详细讲解Python中列表的定义、访问、添加、删除、切片等操作,包使用示例说明。 列表的定义 在Python中,列表可以通过方括号[]来定义,其中每个元素之间用逗号隔开。例如: # 定义一个包含整数和字符…

    python 2023年5月13日
    00
  • python根据json数据画疫情分布地图的详细代码

    接下来我将为您讲解“python根据json数据画疫情分布地图的详细代码”的完整攻略。 准备工作 首先,需要确保你安装了以下三个库: folium: 用于生成地图 pandas: 用于数据处理 requests: 用于获取网络数据 代码如下: !pip install folium pandas requests 获取数据 获取数据是画疫情分布地图的第一步。…

    python 2023年6月3日
    00
  • pip报错“ValueError: invalid literal for int() with base 10: ‘3.6.9’”怎么处理?

    当使用 pip 安装 Python 包时,可能会遇到 “ValueError: invalid literal for int() with base 10: ‘3.6.9’” 错误。这个错误通常是由于 Python 版本号格式不正确导致的。以下是详细讲解 pip 报错 “ValueError: invalid literal for int() with …

    python 2023年5月4日
    00
  • Python数据可视化JupyterNotebook绘图生成高清图片

    下面是Python数据可视化JupyterNotebook绘图生成高清图片的完整攻略,包含以下步骤: 1. 安装必要的库 首先,我们需要安装一些必要的库,包括 matplotlib 和 Pillow。可以使用以下命令来安装: !pip install matplotlib !pip install Pillow 2. 导入必要的库 在绘图之前,我们需要导入一…

    python 2023年5月19日
    00
  • python字典多键值及重复键值的使用方法(详解)

    Python字典多键值及重复键值的使用方法(详解) 在Python中,字典是一种非常常见的数据类型,它以键值对的形式存储数据,在很多程序中都有广泛的应用。Python字典不仅支持单键单值的形式,还支持单键多值、多键单值、多键多值的形式,本文将详细介绍Python字典多键值及重复键值的使用方法。 单键单值字典 Python字典最基本的形式就是单键单值的形式,一…

    python 2023年5月13日
    00
  • 整理Python最基本的操作字典的方法

    当我们在Python中处理字典数据时,会涉及到一些最基本的操作,如增加键值对、修改键值对、删除键值对、清空字典、遍历字典等操作。本文将详细讲解这些操作在Python中的实现方式。 字典基本操作 创建字典及基本访问操作 Python中创建字典和访问字典中的元素都非常简单,可以用{}或dict()方法来创建字典,用键来访问字典中的值。如下面的代码: # 创建字典…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部