Python查询IP地址归属完整代码


Posted in Python onJune 21, 2017

本文实例为大家分享了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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python client使用http post 到server端的代码
Feb 10 Python
在Python的Django框架中更新数据库数据的方法
Jul 17 Python
python获取当前运行函数名称的方法实例代码
Apr 06 Python
利用python微信库itchat实现微信自动回复功能
May 18 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
django用户登录验证的完整示例代码
Jul 21 Python
python修改FTP服务器上的文件名
Sep 11 Python
Python之Numpy的超实用基础详细教程
Oct 23 Python
numpy np.newaxis 的实用分享
Nov 30 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
python实现从ftp上下载文件的实例方法
Jul 19 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
Python批量查询域名是否被注册过
Jun 21 #Python
Python图片裁剪实例代码(如头像裁剪)
Jun 21 #Python
Python编程实战之Oracle数据库操作示例
Jun 21 #Python
Python获取SQLite查询结果表列名的方法
Jun 21 #Python
基于hashlib模块--加密(详解)
Jun 21 #Python
详谈Python基础之内置函数和递归
Jun 21 #Python
浅谈python内置变量-reversed(seq)
Jun 21 #Python
You might like
PHP中HTML标签过滤技巧
2014/01/07 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
json数据与字符串的相互转化示例
2013/09/18 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
jquery实现上下左右滑动的方法
2015/02/09 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
2015/12/08 Javascript
详解Document.Cookie
2015/12/25 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
Python基于WordCloud制作词云图
2019/11/29 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
学院领导推荐信
2013/10/30 职场文书
国际贸易专业推荐信
2013/11/15 职场文书
项目计划书范文
2014/01/09 职场文书
幼儿园老师辞职信
2014/01/20 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
开会通知
2015/04/20 职场文书
离婚被告代理词
2015/05/23 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
用CSS3画一个爱心
2021/04/27 HTML / CSS
mysql中关键词exists的用法实例详解
2022/06/10 MySQL