用Python实现局域网控制电脑
程序分为两部分,一个是客户端也是被操控的端口,另一个是服务端就是用来操作被操控的端口
程序很简单,是通过局域网聊天系统改造而成,没有高级的GUI框架,只有简简单单的DOS窗口,这个仅供学习,当然也可以在你的第二台电脑里放入客户端,然后用服务端进行指令操作,也是很不错的。
客户端会自动获取你的 IPv4 地址,并显示出来,需要用客户端给出的IP地址去服务端进行连接。执行指令也很简单,用接收到的数据进行os.system()进行执行。想法多的也可以做一个鼠标定位数据传输,可达到鼠标控制电脑,想法很大,行动很难。这个是一个供学习的
客户端:
import socketimport osimport 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 myaddrDatabase.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') == '':breakdata = https://www.it610.com/article/sed.recv(1024).decode('utf-8')#接受数据send_data(data)# 发送except:passprint('[-]连接已断开..\n') if __name__ == "__main__":main()
文章图片
服务端需要客户端输出的IP地址才可以连接上,输出的指令尽量不要把客户端的DOS窗口顶掉,列如cmd直接就给替换掉了,尽量使用start cmd 即可打开
服务端:
import socketudp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)def main():while True:DATA = https://www.it610.com/article/input('请输入指令:')if DATA =https://www.it610.com/article/='':passelse: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地址,回车可以看到没有报错说明连接上了
文章图片
这个是客户端,可以看到已经连接成功,我们使用服务端操作一下指令
文章图片
服务端,我们start cmd 打开cmd
文章图片
【用Python实现局域网控制电脑】 客户端,可以看到已经打开了cmd窗口
文章图片
到此这篇关于用Python实现局域网控制电脑的文章就介绍到这了,更多相关Python域网控制电脑内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 解决SpringAop内部调用时不经过代理类的问题
- SpringCache缓存自定义配置的实现
- Mybatis配置映射文件中parameterType的用法讲解
- Redis高可用集群redis-cluster详解
- Python读写yaml文件
- Python|Python IO文件管理的具体使用
- #|docker-jenkins使用npm报错npm: command not found
- 使用孤立森林进行无监督的离群检测
- vue 使用 typescript 开发 可能 遇到的误区
- 每日leetcode——232. 用栈实现队列