文章内容
2020/1/4 18:31:30,作 者: 黄兵
Python拆分IP段,并保存到Redis
最近需要将Bytespider的IP地址保存到Redis,Bytespider给的IP格式如下:
110.249.201.0/24 110.249.202.0/24 111.225.148.0/24 111.225.149.0/24 220.243.135.0/24 220.243.136.0/24 60.8.123.0/24 60.8.151.0/24
首先需要做的是将IP解析成单个IP,使用的是IPy包,如果不是很清楚,可以参考这篇文章:实用的IP地址处理模块IPy
之后需要过滤一些不能被使用的IP,例如:110.249.201.0这类IP。
需要说的的是单个IP的类型是IPy.IP的类型,需要转换成字符串,同时保存到Redis,也需要转换成字符串。
具体代码如下:
# !/usr/bin/env python # -*- coding: utf-8 -*- import IPy from config import conn_config class BytespiderIpSection: def __init__(self): self._ip_section = ['110.249.201.0/24', '110.249.202.0/24', '111.225.148.0/24', '111.225.149.0/24', '220.243.135.0/24', '220.243.136.0/24', '60.8.123.0/24', '60.8.151.0/24'] redis_client = conn_config.Conn_Config() self._redis_client = redis_client.Conn_Redis() def save_redis_by_bytespider_ip(self): for item in self._ip_section: ip = IPy.IP(item) print(ip.len()) for x in ip: if str(x) in ['110.249.201.0', '110.249.201.255', '110.249.202.0', '110.249.202.255', '111.225.148.0', '111.225.148.255', '111.225.149.0', '111.225.149.255', '220.243.135.0', '220.243.135.255', '220.243.136.0', '220.243.136.255', '60.8.123.0', '60.8.123.255', '60.8.151.0', '60.8.151.255']: continue else: self._redis_client.sadd('search_engine_bot_ip', str(x)) if __name__ == '__main__': BytespiderIpSection().save_redis_by_bytespider_ip()
参考资料:
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - Python拆分IP段,并保存到Redis
评论列表