基于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常用库推荐
Dec 04 Python
Python及Django框架生成二维码的方法分析
Jan 31 Python
解决python中无法自动补全代码的问题
Dec 04 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 Python
Django 外键的使用方法详解
Jul 19 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
Python求解正态分布置信区间教程
Nov 20 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
利用python如何实现猫捉老鼠小游戏
Dec 04 Python
Python WSGI 规范简介
Apr 11 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
PHP print类函数使用总结
2010/06/25 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
javascript奇异的arguments分析
2010/10/20 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
html5+css3之制作header实例与更新
2020/12/21 HTML / CSS
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
班组长的岗位职责
2013/12/09 职场文书
摄影助理岗位职责
2014/02/07 职场文书
中班中秋节活动反思
2014/02/18 职场文书
原材料检验岗位职责
2014/03/15 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
python中使用redis用法详解
2022/12/24 Redis