大家好,又见面了,我是你们的朋友全栈君。
程序分为两部分,一个是客户端也是被操控的端口,另一个是服务端就是用来操作被操控的端口
程序很简单,是通过局域网聊天系统改造而成,没有高级的GUI框架,只有简简单单的DOS窗口,这个仅供学习,当然也可以在你的第二台电脑里放入客户端,然后用服务端进行指令操作,也是很不错的。
客户端会自动获取你的 IPv4 地址,并显示出来,需要用客户端给出的IP地址去服务端进行连接。执行指令也很简单,用接收到的数据进行os.system()进行执行。想法多的也可以做一个鼠标定位数据传输,可达到鼠标控制电脑,想法很大,行动很难。这个是一个供学习的
客户端:
代码语言:javascript复制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()
服务端需要客户端输出的IP地址才可以连接上,输出的指令尽量不要把客户端的DOS窗口顶掉,列如cmd直接就给替换掉了,尽量使用start cmd 即可打开
服务端:
代码语言:javascript复制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地址,回车可以看到没有报错说明连接上了
这个是客户端,可以看到已经连接成功,我们使用服务端操作一下指令
服务端,我们start cmd 打开cmd
客户端,可以看到已经打开了cmd窗口
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151154.html原文链接:https://javaforall.cn