python实现ip查询示例
以下代码实现了ip查询功能
处理程序
importos,time
defgetip(filepath):
ip2city={}
file=open(filepath,"r")
lines=file.readlines()
file.close()
forlineinlines:
ip=line.split("")[0]
city=line.split("")[1]
haship=hashm(ip)
ifhashipinip2city:
pass
else:
ip2city[haship]=city
print("Hashdone!")
returnip2city
defhashm(ip):
iplist=ip.split(".")
ip=int(iplist[0])*4+int(iplist[1])*2+int(iplist[2])
returnip
defgetcityfromip(filepath,ipandcity):
outputstr=[]
forfileinos.listdir(filepath):
file_handler=open(filepath+"\\"+file,"r")
line=file_handler.readline()
whileline:
ip=hashm(line.rstrip())
ifipinipandcity:
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!")
defsplitfile(filepath):
file=open(filepath,"r")
block_size=8000000
filecount=1
temp=[]
count=0
line=file.readline()
whilelineortemp:
ifcount==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()
returnos.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
#Generate100millonip
importrandom
importtime
defgenerateIpAdd(file,num):
ip=[]
file=open(file,"a+")
foriinrange(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()
foriinrange(10000):
generateIpAdd("D:\ip.txt",10000)
end=time.clock()
print(end-start)
相关文章
- 在pycharm中如何新建Python文件?_github下载的python源码项目怎么用
- mt4 python_一个使用Python自动化交易外汇MT4脚本实现「建议收藏」
- python 生成数组_Python创建数组「建议收藏」
- python编程是啥-Python编程「建议收藏」
- python hashlib_Python hashlib模块实例使用详解
- python分段线性插值_Python实现分段线性插值
- python测试request代理IP是否替换
- Redis实现虚拟IP解决方案(redis虚拟ip)
- ip查看局域网IP:在Linux系统下的实现(linux查看局域网)
- Linux服务器IP配置:实现安全可靠的网络连接(linux服务器ip配置)
- Linux中实现双IP双网关配置(linux双ip双网关)
- Linux 单网卡实现双IP配置(linux单网卡双ip)
- Linux获取外网IP的最佳方式(linux获取外网ip)
- 修改Oracle主机名IP修改实现安全运行(oracle主机名ip)
- Linux多IP配置,实现流畅出口(linux多ip出口)
- Linux实现静态IP设置(linux设置静态ip)
- Redis 接受访问限制:限制IP,提升安全性(redis限制ip)
- mongodb绑定IP实现服务隔离(mongodb 绑定ip)
- 设置SQL Server双IP设置:实现安全可靠的网络环境(sqlserver双ip)
- 革命性技术:Python与MSSQL的携手合作(python和mssql)
- Linux下如何修改IP网关(linux 修改ip网关)
- Linux IP内网:构建安全的本地网络连接(linux ip 内网)
- Linux下实现子IP设置指南(linux设置子ip)
- Linux用户IP记录:有效管理访问你的系统(linux用户ip)
- 局域网中架设本地Redis IP解决方案(本地redis ip)
- Redis集群实现虚拟IP详解(Redis集群虚拟ip)
- Redis优雅配置IP端口指定(redis配置ip端口)
- 实现网络安全利用Oracle IP触发器(oracle ip触发器)
- Oracle IP审计防范安全风险的良药(oracle ip审计)
- Oracle IP变化把握最新机遇(oracle ip 变化)
- php中禁止单个IP与ip段访问的代码小结
- python脚本实现统计日志文件中的ip访问次数代码分享