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 相关文章推荐
C#返回当前系统所有可用驱动器符号的方法
Apr 18 Python
python rsa 加密解密
Mar 20 Python
python逆序打印各位数字的方法
Jun 25 Python
python中使用print输出中文的方法
Jul 16 Python
利用python画出折线图
Jul 26 Python
python requests 库请求带有文件参数的接口实例
Jan 03 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 Python
Python模拟登录requests.Session应用详解
Nov 17 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 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
PHP概述.
2006/10/09 PHP
用PHP生成自己的LOG文件
2006/10/09 PHP
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
关于在php.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
php中var_export与var_dump的区别分析
2010/08/21 PHP
使用php清除bom示例
2014/03/03 PHP
学习php中的正则表达式
2014/08/17 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
python 排序算法总结及实例详解
2016/09/28 Python
关于Python的一些学习总结
2018/05/25 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
对PyQt5中的菜单栏和工具栏实例详解
2019/06/20 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
家长会演讲稿
2014/04/26 职场文书
防暑降温通知书
2015/04/27 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python