基于python实现查询ip地址来源


Posted in Python onJune 02, 2020

从http://freeapi.ipip.net和http://ip-api.com/json/这两个网站提供的免费调用接口查询IP地址归属地。

接口调用方法是在url后面直接加上IP地址。

url = 'http://freeapi.ipip.net/218.192.3.42' #中文免费
url2 = 'http://ip-api.com/json/218.192.3.42' #外国网站

ip.py:

import sys
import requests

def main(argv):

  url = 'http://freeapi.ipip.net/'  #中文免费
  url2 = 'http://ip-api.com/json/'  #外国网站
  args = sys.argv[1]
  url=url+format(args)
  url2 = url2 + format(args)
  response = requests.get(url)
  response2 = requests.get(url2)

  str=response.text.replace('\"','') #去掉双引号
  str=str.replace('[','')      #去掉方括号
  str=str.replace(']','')
  str=str.replace(' ','')

  str=str.split(",")  #已逗号为分割符号,分割字符串为数组
  print("****************************************")
  print("您查询的IP地址 %s 来源地是:"%args)
  print("国家:%s"%(str[0])) #访问数组里面的值
  print("省份:%s"%(str[1]))
  print("城市:%s"%(str[2]))
  print("区域:%s"%(str[3]))
  str[4] = str[4].replace('\n', '') #去掉回车符号
  print("运营商:%s"%(str[4]))
  print("数据来源<www.ipip.net免费查询接口>")
  print("****************************************")
  strpp={}         #定义一个字典strpp
  strpp=response2.json()  #把英文网站json接口返回值传给字典strpp
  print("\n")        #下面就是直接从字典取值,显示。
  print("您查询的IP地址 %s 来源地是:"%(strpp.get('query')))
  print("国家:%s"%(strpp.get('country')))
  print("城市:%s"%(strpp.get('city')))
  print("经纬度坐标:%s,%s"%(strpp.get('lat'),strpp.get('lon')))
  print("运营商编号:%s"%(strpp.get('as')))
  print("ISP服务商:%s"%(strpp.get('isp')))
  print("数据来源<www.ip-api.com免费查询接口>")
  print("****************************************")
if __name__ == "__main__":
  main(sys.argv)

运行的方法是直接进入该程序所在的工程文件夹中,

然后输入cmd

基于python实现查询ip地址来源

然后输入python ip.py ip地址

基于python实现查询ip地址来源

基于python实现查询ip地址来源

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

Python 相关文章推荐
Python实现从url中提取域名的几种方法
Sep 26 Python
使用python遍历指定城市的一周气温
Mar 31 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
Mar 04 Python
Python使用re模块实现信息筛选的方法
Apr 29 Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
python编程进阶之异常处理用法实例分析
Feb 21 Python
python argparse模块通过后台传递参数实例
Apr 20 Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 Python
Python如何实现线程间通信
Jul 30 Python
python opencv肤色检测的实现示例
Dec 21 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 #Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 #Python
Python实现初始化不同的变量类型为空值
Jun 02 #Python
浅谈Python程序的错误:变量未定义
Jun 02 #Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 #Python
PyInstaller的安装和使用的详细步骤
Jun 02 #Python
Pyinstaller 打包发布经验总结
Jun 02 #Python
You might like
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
2010/02/09 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
python中format()函数的简单使用教程
2018/03/14 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
高校毕业生登记表自我鉴定
2013/11/03 职场文书
机械系大学毕业生推荐信
2013/11/27 职场文书
合作协议书范本
2014/04/17 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis