【Python 局域网控制】——做一个超简单的局域网指令控制电脑

【Python 局域网控制】——做一个超简单的局域网指令控制电脑程序分为两部分,一个是客户端也是被操控的端口,另一个是服务端就是用来操作被操控的端口点个赞留个关注吧!!程序很简单,是通过局域网聊天系统改造而成,没有高级的GUI框架,只有简简单单的DOS窗口,这个仅供学习,当然也可以在你的第二台电脑里放入客户端,然后用服务端进行指令操作,也是很不错的。客户端会自动获取你的IPv4地址,并显示出来,需要用客户端给出的IP地址去服务端进行连接。执行指令也很简单,用接收到的数据进行os.system()进行执行。想法多的也可以做一个鼠标定位数据传输,可达到鼠

大家好,又见面了,我是你们的朋友全栈君。

程序分为两部分,一个是客户端也是被操控的端口,另一个是服务端就是用来操作被操控的端口

点个赞留个关注吧!!

程序很简单,是通过局域网聊天系统改造而成,没有高级的GUI框架,只有简简单单的DOS窗口,这个仅供学习,当然也可以在你的第二台电脑里放入客户端,然后用服务端进行指令操作,也是很不错的。

客户端会自动获取你的 IPv4 地址,并显示出来,需要用客户端给出的IP地址去服务端进行连接。执行指令也很简单,用接收到的数据进行os.system()进行执行。想法多的也可以做一个鼠标定位数据传输,可达到鼠标控制电脑,想法很大,行动很难。这个是一个供学习的

客户端:

import socket
import os
import psutil

# 执行接收到的命令
def send_data(data):
    os.system(data)
    print('[-][+][~]执行命令:[',data+']')

Database = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

# 获取IPv4地址
info = psutil.net_if_addrs()
wlan = info['WLAN']
def myaddr():
    for i in wlan:
        for myaddr in i:
            if '192.168' in str(myaddr):
                return myaddr
Database.bind((myaddr(),8888))
Database.listen(1)
def main():
    while True:   # 持续循环执行
        try:      # 接受数据和命令,如果出错则视为已断开连接
            print(f'[#~]当前服务器IP地址为[{myaddr()}]...')
            print('[#~]等待连接中...')
            sed,dree=Database.accept()    # 等待服务端接入
            print('[+]已连接服务器.')
            while True:
                if sed.recv(1024).decode('utf-8') == '':
                    break
                data = sed.recv(1024).decode('utf-8')#接受数据
                send_data(data)   # 发送
        except:
            pass
        print('[-]连接已断开..\n')

if __name__ == "__main__":
    main()

【Python 局域网控制】——做一个超简单的局域网指令控制电脑

 

服务端需要客户端输出的IP地址才可以连接上,输出的指令尽量不要把客户端的DOS窗口顶掉,列如cmd直接就给替换掉了,尽量使用start cmd 即可打开

服务端:

import socket
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
def main():
    while True:
        DATA = input('请输入指令:')
        if DATA == '':
            pass
        else:
            if len(DATA):
                udp_socket.send(DATA.encode('utf-8'))
                udp_socket.send(DATA.encode('utf-8'))
if __name__ == '__main__':
    myaddr = input('输入要连接服务器的IP地址:')
    udp_socket.connect((myaddr, 8888))  # 连接服务器
    data_list = ''   # 测试
    udp_socket.send(data_list.encode('utf-8'))
    main()

我们输入客户端的IP地址,回车可以看到没有报错说明连接上了

【Python 局域网控制】——做一个超简单的局域网指令控制电脑

 这个是客户端,可以看到已经连接成功,我们使用服务端操作一下指令

【Python 局域网控制】——做一个超简单的局域网指令控制电脑

 

服务端,我们start cmd 打开cmd

【Python 局域网控制】——做一个超简单的局域网指令控制电脑

 客户端,可以看到已经打开了cmd窗口

【Python 局域网控制】——做一个超简单的局域网指令控制电脑

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151154.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • PG数据库事务隔离级别「建议收藏」

    PG数据库事务隔离级别「建议收藏」Postgres数据库事务隔离级别介绍

    2022年10月11日
  • 客户端timewait

    客户端timewaitSocket中的TIME_WAIT状态在高并发短连接的server端,当server处理完client的请求后立刻closesocket此时会出现time_wait状态然后如果client再并发2000个连接,此时部分连接就连接不上了,用linger强制关闭可以解决此问题,但是linger会导致数据丢失,linger值为0时是强制关闭,无论并发多少多能正常连接上,如果非0会发生部分连接不上…

  • 15. PARTITIONS「建议收藏」

    15. PARTITIONS「建议收藏」15.PARTITIONSPARTITIONS表提供有关表分区的信息。此表中的每一行对应于分区表的单个分区或子分区。有关分区表的更多信息,请参见分区。PARTITIONS表有以下列:TABLE_CATALOG:表所属目录的名称。该值始终为def。TABLE_SCHEMA:表所属schema(databas…

  • quick-cocos 3.5 lua banding c++

    quick-cocos 3.5 lua banding c++在tools\tolua目录下有个README,里面详述了在各个平台下怎么使用,这里只是稍微记述下windows下面的使用和遇到的问题。1.首先下载AndroidNDK,版本r9b以上,自己网上找下,然后配置下环境,系统–高级系统设置–高级–环境变量,在自己用户的环境变量中新建,变量名从genbindings.py中可以看到是NDK_ROOT,变量值就是你AndroidNDK的路径。

  • qtabwidget tab样式_qt geometry

    qtabwidget tab样式_qt geometrytabWidget=newQTabWidget();tabWidget->setUsesScrollButtons(true);//使QTabWidget显示滚动条tabWidget->setTabsClosable(true);//设置tab的关闭选项tabWidget->setTabsClosable(true)…

  • 电压电流转换检测「建议收藏」

    电压电流转换检测「建议收藏」电流可以转换成电压,电压也可以转换成电流。图十就是这样一个电路。上图的负反馈没有通过电阻直接反馈,而是串联了三极管Q1的发射结,大家可不要以为是一个比较器就是了。只要是放大电路,虚短虚断的规律仍然是符合的!由虚断知,运放输入端没有电流流过,则(Vi–V1)/R2=(V1–V4)/R6……a同理(V3–V2)/R5=V2/R4……b由虚短知V1=V2……c如果R2=R6,R4=R5,则…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号