IP 存活检测
最近在构建自用 IP 池,其中在获取 IP 后筛选存活 IP方法做如下总结。
主要有三种方式:
- 使用 telnetlib 模块
- 使用 urllib 模块
- 使用 requests 模块
下面就上面三种方式使用简单介绍:
使用 telnetlib 模块检测 IP 存活性(不推荐)
import telnetlib
ip = '195.170.38.230'
port = '8080'
try:
res = telnetlib.Telnet(ip, port, timeout=10)
print(res)
except Exception as e:
print('>>>', e)
print('ip invalidate')
使用 urllib 模块
from urllib import request
link = 'https://www.baidu.com'
# 注意这里的 proxy_ip 是 mapping 的形式 eg: {key: value},其中如果 port 不是 80 需要写出
proxy_ip = {'http': '195.170.38.230:8080'}
proxy_support = request.ProxyHandler(proxy_ip)
opener = request.build_opener(proxy_support)
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36')]
res = request.urlopen(link)
print(res)
使用 requests 模块
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15'
}
link = 'https://www.baidu.com'
# 同理这里如果 port 不是默认 80 需要单独写出
proxies = {'http': '195.170.38.230:8080'}
print('正在测试ip:', real_ip)
result = requests.get(link, headers=headers, proxies=proxies, timeout=10)
if response.status_code not in SUCCESS_CODES:
print('>>>{}无效ip'.format(real_ip))
else:
print('success>>>{} ip有效'.format(real_ip))
本文介绍了如何使用 Python 的 telnetlib、urllib 和 requests 模块进行 IP 存活检测,总结了在构建 IP 池时筛选可用 IP 的方法。
1255

被折叠的 条评论
为什么被折叠?



