python实现查询IP地址所在地


Posted in Python onMarch 29, 2015

使方法一、用IP138数据库查询域名或IP地址对应的地理位置。

#-*- coding:gbk -*-
import urllib2
import re
 
try:
 while True:
  ipaddr = raw_input("Enter IP Or Domain Name:")
  if ipaddr == "" or ipaddr == 'exit':
   break
  else:
   url = "http://www.ip138.com/ips138.asp?ip=%s&action=2" % ipaddr
   u = urllib2.urlopen(url)
   s = u.read()
   #Get IP Address
   ip = re.findall(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',s)
   print "\n****** Below Result From IP138 Database *****"
   print "IP Address:",ip[0]
   #Get IP Address Location
   result = re.findall(r'(<li>.*?</li>)',s)
   for i in result:
    print i[4:-5]
   print "*"*45
   print "\n"
 
except:
 print "Not Data Find"

方法二、本来想调用阿里的ip接口查询ip归属地。结果发现阿里的接口非常不给力,主要是不准确,不过是免费的且有地区和ISP的信息。以下是实现代码

# -*- coding: utf-8 -*-
import requests
 
def checkip(ip):
 
  URL = 'http://ip.taobao.com/service/getIpInfo.php'
  try:
    r = requests.get(URL, params=ip, timeout=3)
  except requests.RequestException as e:
    print(e)
  else:
    json_data = r.json()
    if json_data[u'code'] == 0:
      print '所在国家: ' + json_data[u'data'][u'country'].encode('utf-8')
      print '所在地区: ' + json_data[u'data'][u'area'].encode('utf-8')
      print '所在省份: ' + json_data[u'data'][u'region'].encode('utf-8')
      print '所在城市: ' + json_data[u'data'][u'city'].encode('utf-8')
      print '所属运营商:' + json_data[u'data'][u'isp'].encode('utf-8')
    else:
      print '查询失败,请稍后再试!'
 
ip={'ip': '202.102.193.68'}
checkip(ip)

python实现查询IP地址所在地

但是多次查询发现ip归属地不准确,于是使用17mon的ip查询接口。但是17mon分付费和免费的库接口,我用的免费的测试,接口返回的字段有限,只有国家、省份、城市。代码如下

# -*- coding: utf-8 -*-
import requests
 
def lookup(ip):
 
  URL = 'http://freeipapi.17mon.cn/' + ip
  try:
    r = requests.get(URL, timeout=3)
  except requests.RequestException as e:
    print(e)
 
  json_data = r.json()
  print '所在国家:' + json_data[0].encode('utf-8')
  print '所在省份:' + json_data[1].encode('utf-8')
  print '所在城市:' + json_data[2].encode('utf-8')
  return(ip)
 
ip='202.104.15.102'
lookup(ip)

python实现查询IP地址所在地

测试也不错,公司要使用还是选择购买付费的库查询接口吧。
本文部分出自 “老徐的私房菜” 博客,转载请与作者联系!

以上所述就是本文的全部内容了希望大家能够喜欢。

Python 相关文章推荐
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
Python实现的凯撒密码算法示例
Apr 12 Python
python计算两个地址之间的距离方法
Jun 09 Python
Python实现获取本地及远程图片大小的方法示例
Jul 21 Python
解决python opencv无法显示图片的问题
Oct 28 Python
python实现简易数码时钟
Feb 19 Python
jupyter notebook 中输出pyecharts图实例
Apr 23 Python
pyqt5、qtdesigner安装和环境设置教程
Sep 25 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
判断Python中的Nonetype类型
May 25 Python
教你使用TensorFlow2识别验证码
Jun 11 Python
python实现定时播放mp3
Mar 29 #Python
Python实现设置windows桌面壁纸代码分享
Mar 28 #Python
Python中的类与对象之描述符详解
Mar 27 #Python
深入理解Javascript中的this关键字
Mar 27 #Python
Python运用于数据分析的简单教程
Mar 27 #Python
Python中下划线的使用方法
Mar 27 #Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
Mar 27 #Python
You might like
PHP5中MVC结构学习
2006/10/09 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
php中Ctype函数用法详解
2014/12/09 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Python用threading实现多线程详解
2017/02/03 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
python中使用while循环的实例
2019/08/05 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
Django URL参数Template反向解析
2020/11/24 Python
匡威德国官网:Converse德国
2019/01/26 全球购物
销售顾问的岗位职责
2013/11/13 职场文书
如何写好升职自荐信
2014/01/06 职场文书
小学运动会表扬稿
2014/01/19 职场文书
新年主持词
2014/03/27 职场文书
人资专员岗位职责
2014/04/04 职场文书
银行授权委托书范本
2014/10/04 职场文书
信仰纪录片观后感
2015/06/08 职场文书
生产实习心得体会范文
2016/01/22 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
Golang 结构体数据集合
2022/04/22 Golang
Python开发五子棋小游戏
2022/05/02 Python