#!/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.txtimport signal
import urllib
import json
import sys,os,re
import socketif 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_addresselif(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

 

转载于:https://www.cnblogs.com/flyhigh1860/p/3898935.html

python 查找IP地址归属地相关推荐

  1. python解析IP地址归属地

    一.使用免费淘宝地址库 免费的嘛总是不如收费的好,自己玩玩记录一下 哪里不好? https://ip.taobao.com//outGetIpInfo?ip=xxx 把 xxx 替换成想要查找的IP地 ...

  2. 用Python更改IP地址(转)

    用Python更改IP地址(转) 大多数用笔记本电脑的朋友都有一个烦恼,那就是在家里和公司的IP地址不一样,上班和回家后都得来回切换IP地址,两个字"麻烦".最近在写Python, ...

  3. Python对IP地址列表排序、对列表进行去重、IP地址与MAC地址组合的多个元组的列表排序

    1.python对IP地址列表排序 # -*- coding: utf-8 -*-import socket listIP = ['10.5.11.1', '192.168.1.33', '10.5. ...

  4. python对ip地址排序、对列表进行去重

    一:使用python对ip地址排序所用代码示例一: import socketiplist = ['10.5.11.1','192.168.1.33','10.5.2.4','10.5.1.3','1 ...

  5. 字符串中查找IP地址的正则表达式

    字符串中查找IP地址的正则表达式: IP地址:(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[ ...

  6. python判断字符串合法,详解Python判定IP地址合法性的三种方法 python中判断一个字符串是否是IP地址...

    html 中 鼠标放在标签上会显示小手状,其它标签在其他标签上,美工给加了一些样式,鼠标放上去也显示小手状.有哪位大手状样式 有什么不懂的前端问题可以去菜鸟驿站.全都是泡沫,只一刹的花火,所谓的友情, ...

  7. 在 Linux 命令行中查找 IP 地址介绍

    几年前,ifconfig 是 Linux 中最受欢迎的查询本机 IP 地址的方法.但是现如今 ifconfig 命令已经被启用了.在某些 Linux 发行版上已经不用了.那么,除此以外还有什么别的方式 ...

  8. Python对IP地址列表排序、对列表进行去重、IP地址与MAC地址组合的多个元组的列表排序,对列表内的元组升序和降序排序

    1.python对IP地址列表排序 # -*- coding: utf-8 -*-import socket listIP = ['10.5.11.1', '192.168.1.33', '10.5. ...

  9. 如何通过Android手机查找IP地址

    我们要如何获取IP地址?其实有一个简单的方法,在Android手机上查找IP地址也很简单,只需要几个步骤,公网IP地址的查询过程更加简单. 1.Android手机查找私有IP地址 我们先来看看你的安卓 ...

最新文章

  1. 对照 python_乐高Spike词语模式与Python模式对照01李老师积木大讲堂 第151期
  2. 新东方php工程,这几个游学项目介绍,了解一下
  3. 人工智能是如何改变IT运维和DevOps的?
  4. 1.2.3 使用向量化进行加速计算
  5. 深入Java集合学习系列:LinkedHashSet的实现原理
  6. JavaScript中的数组
  7. ElasticSearch 倒排索引_08
  8. 个人自学ccna的资料+工大瑞普模拟器
  9. 场景文字识别的算法创新与应用,来自百度的技术前沿
  10. (22)HTML Emoji
  11. OpenCV-图像处理(19、Canny边缘检测)
  12. SECRET文件保险柜 V2.7 --统一管理并加密文件
  13. 初出茅庐——利用Python的Turtle库绘制玫瑰花
  14. opencv-python 中直线拟合函数cv.fitLine()的2D直线拟合(适合小白观看)
  15. USB Type-C简介
  16. MySQL中的char和varcharmysql中varchar能存多少汉字、数字,以及varchar(100)和varchar(10)的区别
  17. Linux下装无线网卡(Ubuntu)
  18. 编译警告(Warning)
  19. 单点登录:统一登录与退出
  20. 软件跟踪调试破解心得

热门文章

  1. 各版SQL字符串拼接
  2. 游戏编程精粹学习 - 使用定点颜色插值模拟实时光照
  3. “性能监视器”监视系统性能的基本设置
  4. 【CSS3】Advanced3:Universal, Child, and Adjacent Selectors
  5. 在VB.NET中初始化网格实现方法知识讲解
  6. c++笔记(8) 指针及动态内存管理
  7. php找不到库,64位系统下编译PHP找不到库文件问题 | 学步园
  8. c mysql日期时间格式_[单选] 妊娠期血液成分发生改变,下述哪项是正确的()...
  9. php 替换指定标签中的内容,php如何根据不同的条件替换html代码中的img标签
  10. thymealf 高级用法_史上最详 Thymeleaf 使用教程