获取IP段的URL是http://ipblock.chacuo.net/down/t_txt=c_CN,这个地址更新的比较及时,但是格式并不是我们想要的,所以需要整理下.整理前是这样的
整理后变成这样的直接上代码吧,代码很简单,也没有很复杂的操作,就是基本的文件读写操作#!/usr/bin/env python # coding=utf-8 # code by 92ez.com # last modify time 2015-09-10 10:05 import requests import sys def getLastestIpData(): url = 'http://ipblock.chacuo.net/down/t_txt=c_CN' print '[Note] Try to get IP data from '+ url +' ....' try: response = requests.get(url) dataContent = response.content[7:-8].replace('\t',' ').replace('\r\n','\n') print '[Note] Get IP data success! Data length is '+ str(len(dataContent)) +'.' logFile = open(sys.path[0] + '/cnip.log','w') try: logFile.write(dataContent) logFile.close() print '[Note] Write data into log file success! Path : '+sys.path[0] + '/cnip.log' except Exception,e: print e print '[Note] Program exit...' sys.exit() except Exception,e: print e print '[Note] Program exit...' sys.exit() def decodeIpdata(): #get ip data first getLastestIpData() resultIpArray = [] totalIp = 0 #decode data logFile = open(sys.path[0] + '/cnip.log') for line in logFile: resultIpArray.append(line.split(' ')[0]+'-'+line.split(' ')[1]) totalIp = totalIp + int(line.split(' ')[3]) logFile.close() logFile = open(sys.path[0] + '/cnip.log','w') logFile.write(str(resultIpArray)) logFile.close() print '[Note] Total '+str(len(resultIpArray))+' IP range.' print '[Note] Total '+str(totalIp)+' IP.' if __name__ == "__main__": decodeIpdata() print '[Note] Finish!'
执行效果是这样的
如果有不清楚程序执行的可以留言
本文链接:https://www.92ez.com/?action=show&id=23349
!!! 转载请先联系non3gov@gmail.com授权并在显著位置注明作者和原文链接 !!! 小黑屋
提示:技术文章有一定的时效性,请先确认是否适用你当前的系统环境。
!!! 转载请先联系non3gov@gmail.com授权并在显著位置注明作者和原文链接 !!! 小黑屋
提示:技术文章有一定的时效性,请先确认是否适用你当前的系统环境。