Python 局域网远程控制电脑

Python 局域网远程控制电脑

1.简介:

一款由Python可以远程控制局域网电脑关机、重启、注销、锁定 、休眠、退出登录甚至能操作远程电脑Cmd终端命令的一款工具。资源及源码已打包,大家可自行下载。

工具分为1.0以及2.0版本,2.0版本在1.0终端命令行模式更改为网页界面化操作,可利用手机等多终端设备控制,更加美观实用;优化了端口设置,添加了条件判断;可结合“Radmin_LAN”软件,实现异地控制。工具可用Pyinstaller打包成无窗口后台静默运行。

默认账号:root
默认密码:123456

2. 运行效果:

1.0版本运行效果:

在这里插入图片描述

2.0版本运行效果:

PC端页面效果:

服务端页面:
在这里插入图片描述
客户端登录页面:
在这里插入图片描述
客户端操作页面:
在这里插入图片描述

手机移动端展示效果:

在这里插入图片描述
在这里插入图片描述

3. 1.0版本相关源码:

服务端server.py
import socket
import keyboard
import subprocess
import threading
import logging
import queue
 '''
import win32gui
import win32con
 
 
# 获取当前窗口句柄
hwnd = win32gui.GetForegroundWindow()
 
# 设置窗口属性,隐藏窗口
win32gui.ShowWindow(hwnd, win32con.SW_HIDE)
'''
 
# 配置日志
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
 
print("客户端登录账号:root,密码:123456,F3关闭服务器")
print()
ip1 = '192.168.137.1'  # 默认ip地址
print(f"请输入服务器IP地址(电脑的IPv4地址),不输入默认为 {
     ip1}")
 
# 超时设置,15秒
def get_input(prompt, timeout, result_queue):
    try:
        user_input = input(prompt)
        if user_input.strip() == "":
            result_queue.put(None)  # 如果用户直接回车,返回None
        else:
            result_queue.put(user_input)
    except Exception as e:
        logging.error(f"输入过程中发生错误: {
     e}")
 
# 创建一个线程来获取输入
print("超时时间---15秒")
print()
result_queue = queue.Queue()
input_thread = threading.Thread(target=get_input, args=("请输入服务器IP地址:", 15, result_queue))
input_thread.start()
 
# 等待输入,如果超时则返回默认值
input_thread.join(15)
if not result_queue.empty():
    ip = result_queue.get()
    if ip is None:
        ip = ip1  # 如果用户直接回车,使用默认值
else:
    ip = ip1
 
print(f"最终IP地址: {
     ip}")
 
'''
def get_ipv4_address():
    hostname = socket.gethostname()
    ip_address = socket.gethostbyname(hostname)
    return ip_address
 
ip=get_ipv4_address()
print(ip)
'''
 
 
# 创建一个 TCP/IP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
# 设置 SO_REUSEADDR 选项
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
 
# 绑定服务器地址和端口
server_address = (ip, 5000)
server_socket.bind(server_address)
 
# 监听连接
server_socket.listen(5)  # 支持最多5个并发连接
 
print('服务器正在等待连接...')
 
 
 
def close_server():
    print('服务器已关闭')
    server_socket.close()
    exit()
 
# 监听 F3 键关闭服务器
keyboard.add_hotkey('F3', close_server)
 
def handle_client(client_socket, client_address):
    try:
        print('连接来自:', client_address)
 
        # 接收账号和密码
        data = client_socket.recv(1024)
        logging.debug(f"接收到的数据: {
     data.decode()}")
 
        # 解析账号和密码
        try:
            account, password = data.decode().split(':')
        except ValueError:
            logging.error("账号和密码格式错误")
            message = '账号和密码格式错误!'
            client_socket.send(message.encode())
            return
 
        # 验证账号和密码
        if account == 'root' and password == '123456':
            # 发送成功消息
            message = '登录成功!'
            client_socket.send(message.encode())
 
            # 接收客户端请求
            while True:
                request = client_socket.recv(1024).decode()
                logging.debug(f"接收到的请求: {
     request}")
 
 
 
                if request == '1':
                    # 关机
                    subprocess.call('shutdown /s /t 0', shell=True)
                elif request == '2':
                    # 重启
                    subprocess.call('shutdown /r /t 0', shell=True)
                elif request == '3':
                    # 休眠
                    subprocess.call('rundll32.exe powrprof.dll,SetSuspendState 0,1,0', shell=True)
                elif request == '4':
                    # 锁定
                    subprocess.call('rundll32.exe user32.dll,LockWorkStation', shell=True)
                elif request == '0':
                    # 退出登录
                    print(client_address, "退出登录")
                    break
                elif request == '5':
                    # 等待用户输入
                    user_input = 1
                    while True:
                        # 执行cmd命令
本系列课程为Python实战系列课程:使用微信控制电脑,使用Python的Web框架Flask搭建网页, 并使用网页控制电脑;使用wxPython编写图形化的程序,并进一步将这个程序发展为远程控制程序。 课程目录: |--|----|----1 微信远控:Python 控制电脑的两种方法 |--|----|----|----1 课程介绍.mp4 |--|----|----|----2 命令提示符 CMD 入门.mp4 |--|----|----|----3 Python 执行 CMD 命令.mp4 |--|----|----|----4 Python 调用 Win API.mp4 |--|----|----2 微信远控:让微信控制电脑 |--|----|----|----1 微信控制电脑原理.mp4 |--|----|----|----2 新浪邮箱的设定.mp4 |--|----|----|----3 Python 收发邮件.mp4 |--|----|----|----4 微信控制电脑的实现.mp4 |--|----|----|----5 沙盘化的微信远控.mp4 |--|----|----3 Flask 快速搭建网站 |--|----|----|----1 课程介绍.mp4 |--|----|----|----2 Flask 与 BootStrap 搭建网页.mp4 |--|----|----|----3 Flask 操作数据库.mp4 |--|----|----4 网页控制电脑 |--|----|----|----1 课程介绍.mp4 |--|----|----|----2 建立通信.mp4 |--|----|----|----3 轮询与推送.mp4 |--|----|----|----4 网页控制电脑.mp4 |--|----|----5 Python 图形程序入门 |--|----|----|----1 wxPython 介绍与安装.mp4 |--|----|----|----2 基本控件介绍与绝对布局.mp4 |--|----|----|----3 控件相对布局.mp4 |--|----|----|----4 多线程与事件.mp4 |--|----|----6 编写图形界面的远程控制程序 |--|----|----|----1 远程控制程序的需求分析.mp4 |--|----|----|----2 Socket 通信.mp4 |--|----|----|----3 受控端功能强化.mp4 |--|----|----|----4 远程控制软件的实现与测试.mp4 |--|----|----7 开发远程控制程序高级功能 |--|----|----|----1 高级功能概述.mp4 |--|----|----|----2 读写剪贴板.mp4 |--|----|----|----3 使用 Python 截图.mp4 |--|----|----|----4 Python 上传文件.mp4 |--|----|----|----5 结课总结.mp4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

创客白泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值