使用 python 完成 IP 存活检测

本文介绍了如何使用 Python 的 telnetlib、urllib 和 requests 模块进行 IP 存活检测,总结了在构建 IP 池时筛选可用 IP 的方法。

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))
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值