批量查询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"
时间: 2024-08-07 02:01:09

批量查询ip地址归属地的相关文章

python3.2批量查询IP地址区域

import urllib.request #jk409  2014-7-31 by python3.4编写用于[批量]查询IP地址国家区域 def chaxun(ip_addr):     ip_addr2=ip_addr     domain_addr='http://ip.taobao.com/service/getIpInfo.php?ip='     domain=domain_addr+ip_addr2     res=urllib.request.urlopen(domain).r

python学习-使用ip138查询ip地址归属地

#!/usr/bin/python #coding:utf-8 import urllib import re import sys def ISIP(s):     return len([i for i in s.split('.') if (0<= int(i)<= 255)])== 4 def URL(ip): uip=urllib.urlopen('http://wap.ip138.com/ip.asp?ip=%s'%ip) fip=uip.read() rip=re.compile

在qqwry.dat里查询IP地址归属地,Python3版

for Python 3.0+ 类似代码网上也有,这个的特点就是: 1.有两套实现供选择.有一个查找速度更快,但占用更多内存. 2.看着干净,仅import array和bisect这两个Python自带的模块. 用法:q = QQwry()q.load_file('qqwry.dat')q.lookup('8.8.8.8')详细用法见qqwry.py文件里面的说明 github上的项目:https://github.com/animalize/qqwry-python3 源码: # codin

批量ping IP地址命令测试是否通

批量ping IP地址命令测试是否通 #!/bin/bash#--------------------------------------------------------------------------------------------------echo -e " "echo -e " ==============================================="echo -e "| Thanks for using this

Linux socket编程 DNS查询IP地址

本来是一次计算机网络的实验,但是还没有完全写好,DNS的响应请求报文的冗余信息太多了,不只有IP地址.所以这次的实验主要就是解析DNS报文.同时也需要正确的填充请求报文.如果代码有什么bug,欢迎指正啊.代码排版有点乱... 本文有以下内容 DNS报文的填充和解析 利用socket API传输信息 一.填充DNS请求报文 随便百度一下,就可以知道DNS报文的格式.所以这里只介绍如何填充DNS报文. 首先是填充报文首部: ? 1 2 3 4 5 6 7 8 9 /* 填充首部的格式大致相同,下面的

【VB.NET】利用纯真IP数据库查询IP地址及信息

几年前从某个博客抄来的,已经忘记原地址了,如果需要C#版的,可以在博客园搜到吧.我因为自己用,所以转换为了VBNET代码,而且也放置了很久,今天无意间翻出来,就分享给大家吧. 首先,先下载 纯真数据库,名称应该是 QQWry.dat .之后将数据库文件复制到程序的主目录即可. Imports System.IO Imports System.Text Imports System.Text.RegularExpressions Imports System.Net Imports System.

python 查找IP地址归属地

#!/usr/bin/env python # -*- coding: utf-8 -*- #查找IP地址归属地 #writer by keery_log #Create time:2013-10-30 #Last update:2013-10-30 #用法: python chk_ip.py www.google.com |python chk_ip.py 8.8.8.8 |python chk_ip.py ip.txt import signal import urllib import j

【VB.NET】通过 IPIP.NET 数据库来查询IP地址

上一次介绍了利用纯真数据库查询IP地址详细信息的方法.然而纯真数据库是由网友反馈所提供的,很多数据描述并不准确,所以我上网找了一些其他的IP数据库,最后就找到了 ipip.net 这个网站所提供的IP数据库. IPIP所提供的数据库有付费和免费两个版本,我们可以直接使用其中的免费版本.下载地址 https://www.ipip.net/download.html (需要先注册一个帐号)压缩包内有一个PHP的解析类,还有一个 17monipdb.dat 文件就是数据库了,我们只需要用到它就可以了.

【数据结构】Trie树的应用:查询IP地址的ISP(Java实现)

查询IP地址的ISP 给定一个IP地址,如何查询其所属的ISP,如:中国移动(ChinaMobile),中国电信(ChinaTelecom),中国铁通(ChinaTietong)? 现在网上有ISP的IP地址区段可供下载,比如中国移动的IP地址段 103.20.112.0/22 103.21.176.0/22 111.0.0.0/10 112.0.0.0/10 117.128.0.0/10 120.192.0.0/10 183.192.0.0/10 211.103.0.0/17 211.136.