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 json
import sys,os,re
import socket

if len(sys.argv) <= 1 :
    print "Please input ip address !"
    sys.exit(0)

def handler(signum, frame):
    sys.exit(0)
signal.signal(signal.SIGINT, handler)

url = "http://ip.taobao.com/service/getIpInfo.php?ip="

#查找IP地址
def ip_location(ip):
    data = urllib.urlopen(url + ip).read()
    datadict=json.loads(data)

    for oneinfo in datadict:
        if "code" == oneinfo:
            if datadict[oneinfo] == 0:
                return datadict["data"]["country"] + datadict["data"]["region"] + datadict["data"]["city"] + datadict["data"]["isp"]

#定义IP与域名正则
re_ipaddress = re.compile(r‘^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$‘)
re_domain = re.compile(r‘[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?‘)

if os.path.isfile(sys.argv[1]):  #如果参数是文件,迭代查找
    file_path = sys.argv[1]
    fh = open(file_path,‘r‘)
    for line in fh.readlines():
        if re_ipaddress.match(line):
            city_address = ip_location(line)
            print line.strip() + ":" + city_address
else:
    ip_address = sys.argv[1]
    if re_ipaddress.match(ip_address):  #如果参数是单个IP地址
        city_address = ip_location(ip_address)
        print ip_address + ":" + city_address
    elif(re_domain.match(ip_address)):  #如果参数是域名
        result = socket.getaddrinfo(ip_address, None)
        ip_address = result[0][4][0]
        city_address = ip_location(ip_address)
        print ip_address.strip() + ":" + city_address
时间: 2025-01-07 13:57:14

python IP地址查询归属的相关文章

python requests库爬取网页小实例:ip地址查询

ip地址查询的全代码: 智力使用ip183网站进行ip地址归属地的查询,我们在查询的过程是通过构造url进行查询的,将要查询的ip地址以参数的形式添加在ip183url后面即可. #ip地址查询的全代码 import requests url="http://m.ip138.com/ip.asp?ip=" try: r=requests.get(url+'202.204.80.112') r.raise_for_status() r.encoding=r.apparent_encodi

IP地址查询脚本

晚上看新闻时无意看到了淘宝IP查询API的信息,然后就顺手写了一个IP地址查询的脚本来分享 先贴出淘宝IP查询API的使用方法,以供读者研究: 1. 请求接口(GET): /service/getIpInfo.php?ip=[ip地址字串] 2. 响应信息: (json格式的)国家 .省(自治区或直辖市).市(县).运营商 3. 返回数据格式: {"code":0,"data":{"ip":"210.75.225.254",&

几个免费IP地址查询API接口

1.IP地址查询接口:http://apis.juhe.cn/ip/ip2addr 要先去https://www.juhe.cn/docs/api/id/1申请APPKEY 2.新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪这个应该说是最不错的.并且返回的数据类型为可以自定义格式(默认为纯文本格式,根据format的参数定义,还可以返回JS.Json格式). 3.新浪多地域测试方法: http

Android中由IP地址查询经纬度坐标的实例

大家都知道,根据IP地址就可以知道它所在的具体位置,在Android中同样可以由IP地址得到它的位置,即具体的地理经纬度坐标. 本文就直接以代码的方式演示如何根据IP地址查询地理经纬度坐标位置,下面的例子中演示的就是由58.192.32.1这个IP地址查询到其所在的经纬度坐标为(118.777802,32.061699). Java代码 package eoe.demo; import com.mapdigit.gis.DigitalMap; import com.mapdigit.gis.Ma

API之IP地址查询---权威的IP地址查询接口集合

原文地址:http://yushine.iteye.com/blog/1717586 推荐实用IP138 http://www.baidu.com/s?wd=IP&rsv_spt=1&issp=1&f=8&rsv_bp=0&ie=utf-8&tn=19045005_9_pg&rsv_enter=1&rsv_sug3=2&rsv_sug4=60&rsv_sug1=1&rsv_sug2=0&inputT=520  

根据IP地址查询所在地

using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Text.RegularExpressions; namespace AIMSCommon { /// <summary> /// 根据IP地址查询所在地 /// </summary> public class IPScanerHelper { #region 私有成员 private st

分享几个免费IP地址查询API接口

1.IP地址查询接口:http://apis.juhe.cn/ip/ip2addr 要先去https://www.juhe.cn/docs/api/id/1申请APPKEY 2.新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪这个应该说是最不错的.并且返回的数据类型为可以自定义格式(默认为纯文本格式,根据format的参数定义,还可以返回JS.Json格式). 3.新浪多地域测试方法: http

python IP地址转16进制

python IP地址转16进制 第一种方法: 通过socket.inet_aton实现 import socket from binascii import hexlify ary='192.168.1.1' packed_ip_addr = socket.inet_aton(ary) hexStr=hexlify(packed_ip_addr) print('IP:'+hexStr) 输出: IP:c0a80101 第二种方法: 将字符串分割成数组,在转换成16进制 ary='192.168

IP地址查询接口及调用方法

1.查询地址 搜狐IP地址查询接口(IP):http://pv.sohu.com/cityjson 1616 IP地址查询接口(IP+地址):http://w.1616.net/chaxun/iptolocal.php 126(地址): http://ip.ws.126.net/ipquery 2.使用 <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>//ie指定编码,默认是gbk <