前言:
此刻姐妹们对“python ftp下载最新文件”大体比较关心,兄弟们都想要学习一些“python ftp下载最新文件”的相关资讯。那么小编在网上收集了一些对于“python ftp下载最新文件””的相关内容,希望我们能喜欢,小伙伴们快快来了解一下吧!感觉网上很多的东西比较零零散散,这次整合一个可以扫描网段的ip地址并爬取IP地址中可以匿名登陆FTP的数据扫描一个网段,获取其中所有的开放FTP服务的机器的IP地址依次获取每个FTP的文件目录内容,从每个FTP中下载一定量的文件
import platformimport sysimport osimport timeimport _threadimport datetimefrom ftplib import FTPclass FTP_P(FTP): def dirs(self, *args): cmd = 'LIST' templist = [] func = None if args[-1:] and type(args[-1]) != type(''): args, func = args[:-1], args[-1] for arg in args: if arg: cmd = cmd + (' ' + arg) self.retrlines(cmd, templist.append) return templistdef download_single_url_ftp(stri): try: ftp = FTP_P() = "utf-8" # 连接的ftp sever和端口 ("anonymous") # 连接的用户名,密码 # print() #打印出欢迎信息 (r"/") # 设置FTP当前操作的路径 for i in : print(i+'') ftpath = '/' localpath = 'D:/data/' ftpDownload(ftp,ftpath,localpath) # 退出ftp except (ConnectionRefusedError, TimeoutError, WindowsError) as e: print("{}的Ftp连接失败 {}".format(stri,str(e))) print() pass except BaseException as e: print("{}的Ftp连接失败 {}".format(stri,str(e))) print() pass def ftpDownload(ftp, ftpath, localpath): ''' :param ftp: 登陆ftp返回的信息 :param ftpath: ftp中的目标路径 :param localpath: 存放下载文件的本地路径 :return: ''' print('Remote Path: {0}'.format(ftpath)) if not os.path.exists(localpath): os.makedirs(localpath)#如果文件不在创建文件 for file in : print('file:', file) if len() == 0: pass elif file == [0]: print('扫描到文件') ftpDownloadFile(ftp,file, localpath) else: print('扫描到文件夹') path = + '/' + file local = localpath+'/'+ file ftpDownload(ftp, path, local)#递归 ('..') return True#python saomiao.py 149def ftpDownloadFile(ftp, ftpfile, localfile): bufsize = 1024 path = os.path.join(localfile,ftpfile) with open(path, 'wb') as fid: print('正在下载:',ftpfile) ('RETR {0}'.format(ftpfile), fid.write, bufsize) # 接收服务器文件并写入本地文件 print('下载完毕。') return Truedef get_os(): os = platform.system() if os == "Windows": return "n" else: return "c"def ping_ip(ip_str): cmd = ["ping", "-{op}".format(op=get_os()), "1", ip_str] output = os.popen(" ".join(cmd)).readlines() flag = False for line in list(output): if not line: continue if str(line).upper().find("TTL") >=0:#判断存活时间 flag = True break if flag: print("*** *** *** ip: %s 可以ping通 *** *** ***"%(ip_str)) download_single_url_ftp(ip_str)def find_ip(ip_prefix): for i in range(1,256): ip = ('%s.%s'%(ip_prefix,i)) _thread.start_new_thread(ping_ip, (ip,)) time.sleep(0.5) # ping_ip(ip)if __name__ == "__main__": startTime = datetime.datetime.now() print("start time %s"%(time.ctime())) net=sys.argv[1] args = "".join(("211.71."+net+".1"))#211.71.149 ip_prefix = '.'.join(args.split('.')[:-1])#211.71.149 find_ip(ip_prefix) endTime = datetime.datetime.now() print("end time %s"%(time.ctime())) print("total takes :",(endTime - startTime).seconds)
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python ftp下载最新文件 #pythonftp文件大小 #pythonftp代码 #js 读写本地文件 #ftp有了ip地址如何下载图示