1.138网站

http://user.ip138.com/ip/
首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值

 import httplib2
from urllib.parse import urlencode #python3
#from urllib import urlencode #python2
params = urlencode({'ip':'8.8.8.8','datatype':'jsonp','callback':'find'})
url = 'http://api.ip138.com/query/?'+params
headers = {"token":"8594766483a2d65d76804906dd1a1c6a"}#token为示例
http = httplib2.Http()
response, content = http.request(url,'GET',headers=headers)
print(content.decode("utf-8"))

响应格式

{
"ret":"ok", // ret 值为 ok 时 返回 data 数据 为err时返回msg数据
"ip":"114.114.114.114", // ip
"data":[
"中国", // 国家
"江苏", // 省会或直辖市
"南京", // 地区或城市
"电信", // 运营商
"", // 邮政编码
"" // 地区区号
]
}

2、ip-api,部分数据不准确,但不限请求次数,且可批量json请求,返回数据可选:json、xml、csv
  帮助文档

  

请求接口                                     请求方式           响应

http://ip-api.com/json/8.8.8.8?lang=zh-CN    HTTP GET           如下


 {
"status":"success",
"country":"美国",
"countryCode":"US",
"region":"VA",
"regionName":"弗吉尼亚州",
"city":"Ashburn",
"zip":"",
"lat":39.0438,
"lon":-77.4874,
"timezone":"America/New_York",
"isp":"Level 3",
"org":"Google LLC",
"as":"AS15169 Google LLC",
"query":"8.8.8.8"
}

哈哈,上python,获取信息

 """
简化版
"""
import requests
lid=input("请输入你要查询的IP:") headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url="http://ip-api.com/json/{}?fields=status,message,country,countryCode,region,regionName,city,zip,lat,lon,timezone,isp,org,as,query&lang=zh-CN".format(lid) #加headers反爬
rb=requests.get(url,headers=headers)
print(rb.text)

能获取ip信息的,但有点乱,不喜欢,个人有点强迫症,优化一下吧

 #!/usr/bin/env python3
# coding:utf-8
# 2019/11/14 14:45
#lanxing
import requests
import time strat=time.time()
def chax():
lid=input("请输入你要查询的IP:")
print("**************************************开始获取IP信息**********************************************")
head = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url="http://ip-api.com/json/{}?fields=status,message,country,countryCode,region,regionName,city,zip,lat,lon,timezone,isp,org,as,query&lang=zh-CN".format(lid)
rb=requests.get(url,headers=head)
# gf=BeautifulSoup(rb)
# print(rb.text)
# print("status:"+rb.content["status"])
response = rb.text
print(type(response))
# print(response)
# 把str转换到dic
dict_response = eval(response)
# for i in dict_response.items():
# print(i) for key,value in dict_response.items(): print("IP信息:" + str(key) + " : " + str(value)) chax()
end=time.time()
print("**************************************大佬,查询IP信息完成!**************************************")
print('查询耗时:',end-strat)

这个,理论上没有查询次数限制,有空再搞搞

参考文档:https://www.jianshu.com/p/bd0616fc30b8

https://ip-api.com/docs/api:json#test

用python获取ip信息的更多相关文章

  1. 8021x 获取IP信息失败,请检查锐捷认证客户端当前配置是否符合所在网络的要求,检查完毕后尝试重新认证

    早上一起床,登陆锐捷客户端上网,谁知道错问题了.不能联网了,锐捷登陆成功,但是一会儿就提示失败,获取IP信息失败了.下面我描述一下问题原因: 锐捷登陆后有认证提示,和往常正常情况一样的,不过有个小感叹 ...

  2. PHP获取IP信息

    <?php /** * 获取客户端IP * @param integer $type 返回类型 0:string,1:long * @return string|long */ function ...

  3. js获取设备公网ip + 服务器根据公网ip 获取IP信息

    1.前言 本来呢,想实现js定位功能,最少定位到城市,一开始,使用的是搜狐的api直接获取数据,可是,有时候搜狐不可靠,只能得到 公网ip,其他信息无用,就像这样 2.既然这样,还不如我自己请求自己的 ...

  4. 用python获取服务器硬件信息[转]

    #!/usr/bin/env python # -*- coding: utf-8 -*- import rlcompleter, readline readline.parse_and_bind(' ...

  5. Linux下Python获取IP地址

    <lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是 ...

  6. python 获取对象信息

    当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> ...

  7. python获取机器信息脚本(网上寻找的)

    获取机器信息(待测试) # -*- coding: UTF-8 -*- import psutil import json import os import socket import struct ...

  8. Python 获取车票信息

    提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...

  9. C#获取IP信息

    /// <summary> /// 通过IP得到IP所在地省市(Porschev) /// </summary> /// <param name="ip&quo ...

随机推荐

  1. mysql 需要掌握的重点

    1. 安装mysql:     google it.2. 新建database,table: create database database_name;create table table_name ...

  2. pop&dismiss

    //dismiss到根视图 - (void)dismissToRootViewController{ UIViewController *vc = self; while (vc.presenting ...

  3. Theorem、Proposition、Lemma和Corollary等的解释与区别

    Theorem:定理.是文章中重要的数学化的论述,一般有严格的数学证明. Proposition:可以翻译为命题,经过证明且interesting,但没有Theorem重要,比较常用. Lemma:一 ...

  4. JS函数进阶

    函数的定义方式 函数声明 函数表达式 new Function 函数声明  function foo () { } 函数表达式  var foo = function () { ​ } 函数声明与函数 ...

  5. hexo next主题中遇到的关于require的timeout的问题。Uncaught Error: Load timeout for modules:

    个人博客:https://mmmmmm.me 源码:https://github.com/dataiyangu/dataiyangu.github.io 背景 报错:Uncaught Error: L ...

  6. webjars和springboot热启动

    webjars WebJars将Web前端Javascript和CSS等资源打包成Java的Jar包, 以便能使Maven的依赖管理支持静态JavaScript库/CSS库,比如jQuery.layu ...

  7. Python第一课-Python的下载与安装

    官网 https://www.python.org/ 我们安装的是windows 系统 Python3和Python2版本不兼容,我们下载最新的Python3.7.4 下载executatable版本 ...

  8. python基础语法(运算符及优先级)

    python基础语法(运算符及优先级) python语言支持的运算符类型 算数运算符 假设变量a为10,变量b为21 算数符 描述 实例 + 加-两个对象相加 a+b结果31 - 减-得到一个负数或者 ...

  9. 13-1-return

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. java自定义注解代码练习

    /** * 自定义注解:校验非空字段 * */ @Documented @Inherited // 接口.类.枚举.注解 @Target(ElementType.FIELD) //只是在运行时通过反射 ...