批量查询ip地址归属地
Posted Jackie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量查询ip地址归属地相关的知识,希望对你有一定的参考价值。
1 #!/usr/bin/env python 2 #-*-coding:utf-8-*- 3 import urllib 4 import urllib2 5 import json 6 import time 7 import sys 8 def check_ipaddr(func,*args, **kwargs): 9 iplist = func(*args,**kwargs) 10 temp_list =[] 11 for line in iplist: 12 if line.split(): 13 a = json.loads(line) 14 b = [] 15 for item in a: 16 if item not in b: 17 b.append(item) 18 b = "".join(b) 19 temp_list.append(b) 20 return temp_list 21 22 def check_url(res): 23 ip_list = [] 24 f = open(res,‘r‘) 25 for line in f: 26 url = "http://freeapi.ipip.net/%s" %line.strip() 27 ip_addr = urllib.urlopen(url).read() 28 time.sleep(0.25) 29 ip_list.append(ip_addr) 30 f.flush() 31 #print len(ip_list) 32 return ip_list 33 34 def ip_city(ip_file): 35 ip_list = [] 36 city_list = [] 37 temp =check_ipaddr(check_url,ip_file) 38 f = open(ip_file,‘r‘) 39 for i in f: 40 line = i.strip().split(‘\n‘) 41 for i in line: 42 ip_list.append(i) 43 #f.flush() 44 for line in temp: 45 city_list.append(line) 46 for i in range(len(ip_list)): 47 l =i+1 48 time.sleep(0.07) 49 print "%s)"%l,ip_list[i],"\t"+"("+ city_list[i] +")" 50 51 f.flush 52 return ip_city 53 54 if __name__ == "__main__": 55 if len(sys.argv) >1: 56 ip_city(sys.argv[1]) 57 else: 58 print "\033[31;5mPlease pass a file....\033[0m"
以上是关于批量查询ip地址归属地的主要内容,如果未能解决你的问题,请参考以下文章