随机ip完整版

import pymysql
import requests


class GetRandomIP():
def getip(self):
conn = pymysql.connect(host="localhost", port=3306, user="root", password="liuzhiyu", db="python77",
charset="utf8")
cursor = conn.cursor()
# sql='select ipType,ipAddress,ipPort from proxyServer ORDER BY RAND() LIMIT 1'
sql = 'select * from proxyServer ORDER BY RAND() LIMIT 1'
cursor.execute(sql)
one_ip_data = cursor.fetchall()[0]
#eg:one_ip_data=(83, 'socks4/5', '113.121.245.231', '6675')
print('-'*50)
print('本次从数据库中获得的ip',one_ip_data)
cursor.close()
conn.close()
return_val=self.verifyip(one_ip_data)
# successIp='{}://{}:{}'.format(one_ip_data[1], one_ip_data[2], one_ip_data[3])
if return_val:
return '{}://{}:{}'.format(one_ip_data[1], one_ip_data[2], one_ip_data[3])
else:
return 0

#验证ip是否有效
def verifyip(self,one_ip_data):
if one_ip_data[1]!='http' and one_ip_data[1]!='https':
self.delip(one_ip_data)
return 0
type_ipaddress_port = '{}://{}:{}'.format(one_ip_data[1], one_ip_data[2], one_ip_data[3])
print('验证ip: {} 是否有效:'.format(type_ipaddress_port))
try:
response=requests.get('http://jsonip.com',proxies={one_ip_data[1]:type_ipaddress_port},timeout=3) #proxies={'HTTP':'HTTP://106.56.102.139:8070'}
if response.json()['ip']==one_ip_data[2]:
print('ip:{}有效 √'.format(one_ip_data))
return 1
else:
print('ip:{}无效 X'.format(one_ip_data))
return 0
except Exception as e:
print('ip:{}无效 X'.format(one_ip_data))
self.delip(one_ip_data)
return 0

def delip(self,one_ip_data):
conn = pymysql.connect(host="localhost", port=3306, user="root", password="liuzhiyu", db="python77",
charset="utf8")
cursor = conn.cursor()
sql = 'delete from proxyServer where id=%s'
cursor.execute(sql,(one_ip_data[0]))
conn.commit()
print('删除ip:{}'.format(one_ip_data))
cursor.close()
conn.close()

def mainfunc(self):
ip = self.getip()
while not ip:
ip = self.getip()
print('->', ip)
return ip


if __name__ == '__main__':
gr = GetRandomIP()
ip=gr.mainfunc()
print('----------->',ip)





posted @ 2018-09-20 18:01  inorilzy  阅读(435)  评论(0编辑  收藏  举报