获取中国所有IP段的Python脚本

获取IP段的URL是http://ipblock.chacuo.net/down/t_txt=c_CN,这个地址更新的比较及时,但是格式并不是我们想要的,所以需要整理下.整理前是这样的

before.png - 大小: 77.85 KB - 尺寸: 482 x 557 - 点击打开新窗口浏览全图
整理后变成这样的
result.png - 大小: 100.11 KB - 尺寸: 983 x 542 - 点击打开新窗口浏览全图
直接上代码吧,代码很简单,也没有很复杂的操作,就是基本的文件读写操作

#!/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!'

执行效果是这样的

runip.png - 大小: 14.91 KB - 尺寸: 593 x 105 - 点击打开新窗口浏览全图
如果有不清楚程序执行的可以留言

本文链接:https://www.92ez.com/?action=show&id=23349
!!! 转载请先联系non3gov@gmail.com授权并在显著位置注明作者和原文链接 !!! 小黑屋
提示:技术文章有一定的时效性,请先确认是否适用你当前的系统环境。

上一篇: 关于IT之家在某些大型门户网站发表文章不带任何版权说明的思考
下一篇: sqlite3 清空数据表并且重置id为0

访客评论
目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):