当前位置:  编程技术>python

python实现ip查询示例

    来源: 互联网  发布时间:2014-10-04

    本文导语:  以下代码实现了ip查询功能处理程序 代码如下:import os,time def getip(filepath):    ip2city={}    file=open(filepath,'r')    lines=file.readlines()    file.close()    for line in lines:        ip=line.split(' ')[0]        city=line.split(' ')[1]   ...

以下代码实现了ip查询功能

处理程序

代码如下:

import os,time

def getip(filepath):
    ip2city={}
    file=open(filepath,'r')
    lines=file.readlines()
    file.close()
    for line in lines:
        ip=line.split(' ')[0]
        city=line.split(' ')[1]
        haship=hashm(ip)
        if haship in ip2city:
            pass
        else:
            ip2city[haship]=city
    print('Hash done!')
    return ip2city

def hashm(ip):
    iplist=ip.split('.')
    ip=int(iplist[0])*4+int(iplist[1])*2+int(iplist[2])
    return ip

def getcityfromip(filepath,ipandcity):
    outputstr=[]
    for file in os.listdir(filepath):
        file_handler=open(filepath+'\'+file,'r')
        line=file_handler.readline()
        while line:
            ip=hashm(line.rstrip())
            if ip in ipandcity:
                outputstr.append(line.rstrip()+'    '+ipandcity[ip])
            line=file_handler.readline()
        file_handler.close()
        outfile_handler=open(filepath+'\'+file.split('.')[0]+'_out.txt','a+')
        outfile_handler.writelines(outputstr)
        outfile_handler.close()
        print(file.split('.')[0]+'_out.txt'+'done!')
       

def splitfile(filepath):
    file=open(filepath,'r')
    block_size=8000000
    filecount=1
    temp=[]
    count=0
    line=file.readline()
    while line or temp:
        if count==block_size:
            wfile=open('D:\ipfile\file_'+str(filecount)+'.txt','a+')
            wfile.writelines(temp)
            temp=[]
            count=0
            wfile.close()
            filecount+=1
            print('Split'+str(filecount)+' done!')
        else:
            count+=1
            temp.append(line)
            line=file.readline()
    file.close()
    return os.path.join('D:\'+'ipfile')

if __name__ == '__main__':
    start=time.clock()
    filepath='D:\ip.txt'
    ippath='D:\citys.txt'
    ip2city=getip(ippath)
    splitfilepath=splitfile(filepath)
    getcityfromip('D:\'+'ipfile',ip2city)
    end=time.clock()
    print(end-start)

生成IP

代码如下:

#Generate 100 millon ip
import random
import time

def generateIpAdd(file,num):
    ip=[]
    file=open(file,'a+')
    for i in range(num):
        ipAdd='192.168.'+str(random.randint(0,255))+'.'+str(random.randint(0,255))
        ip.append(ipAdd+'n')
    file.writelines(ip)
    file.close()

if __name__=='__main__':
    start=time.clock()
    for i in range(10000):
        generateIpAdd('D:ip.txt',10000)
    end=time.clock()
    print(end-start)


    
 
 

您可能感兴趣的文章:

  • Python获取网页编码的方法及示例代码
  • python读取csv文件示例(python操作csv)
  • python下xml解析库lxml最新版下载安装以及代码示例
  • python基础教程之python消息摘要算法使用示例
  • 数据结构:图(有向图,无向图),在Python中的表示和实现代码示例
  • python实现绘制树枝简单示例
  • 使用python删除nginx缓存文件示例(python文件操作)
  • python学习手册中的python多态示例代码
  • python调用windows api锁定计算机示例
  • python代码制作configure文件示例
  • python使用循环实现批量创建文件夹示例
  • python采用requests库模拟登录和抓取数据的简单示例
  • Python数组条件过滤filter函数使用示例
  • python获得图片base64编码示例
  • Python的print用法示例
  • python文件读写并使用mysql批量插入示例分享(python操作mysql)
  • Python pass 语句使用示例
  • python getopt 参数处理小示例
  • python的urllib模块显示下载进度示例
  • python list转dict示例分享
  • python求素数示例分享
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • Python3实现生成随机密码的方法
  • 基于python实现的网络爬虫功能:自动抓取网页介绍
  • python调用短信猫控件实现发短信功能实例
  • Python3通过request.urlopen实现Web网页图片下载
  • Python实现多行注释的另类方法
  • 在Python3中使用urllib实现http的get和post提交数据操作
  • python 布尔操作实现代码
  • juqery的python实现:pyquery学习使用教程
  • python实现的重启关机程序实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • python实现DNS正向查询、反向查询的例子
  • Python时区设置方法与pytz查询时区教程
  • Python查询Mysql时返回字典结构的代码
  • Python中让MySQL查询结果返回字典类型的方法
  • python正则匹配查询港澳通行证办理进度示例分享
  • python使用urllib模块和pyquery实现阿里巴巴排名查询
  • python自动化工具日志查询分析脚本代码实现
  • Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
  • python实现百度关键词排名查询
  • python使用在线API查询IP对应的地理位置信息实例
  • python实现2014火车票查询代码分享
  • Python ORM框架SQLAlchemy学习笔记之数据查询实例
  • Python操作Mysql实例代码教程在线版(查询手册)
  • 布同自制Python函数帮助查询小工具
  • Python不使用print而直接输出二进制字符串
  • 让python同时兼容python2和python3的8个技巧分享
  • Python中实现json字符串和dict类型的互转
  • 使用setup.py安装python包和卸载python包的方法
  • python异常信息堆栈输出到日志文件
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • Python开发者社区整站源码 Pythoner
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • 新手该如何学python怎么学好python?
  • Python异常模块traceback用法举例
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • python之平台独立的调试工具winpdb介绍
  • python版本的问题
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
  • 测试Python内部类型及type和isinstance用法区别


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3