随机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)





转载于:https://www.cnblogs.com/inorilzy/p/9682367.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值