用python获取ip信息
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信息的更多相关文章
- 8021x 获取IP信息失败,请检查锐捷认证客户端当前配置是否符合所在网络的要求,检查完毕后尝试重新认证
早上一起床,登陆锐捷客户端上网,谁知道错问题了.不能联网了,锐捷登陆成功,但是一会儿就提示失败,获取IP信息失败了.下面我描述一下问题原因: 锐捷登陆后有认证提示,和往常正常情况一样的,不过有个小感叹 ...
- PHP获取IP信息
<?php /** * 获取客户端IP * @param integer $type 返回类型 0:string,1:long * @return string|long */ function ...
- js获取设备公网ip + 服务器根据公网ip 获取IP信息
1.前言 本来呢,想实现js定位功能,最少定位到城市,一开始,使用的是搜狐的api直接获取数据,可是,有时候搜狐不可靠,只能得到 公网ip,其他信息无用,就像这样 2.既然这样,还不如我自己请求自己的 ...
- 用python获取服务器硬件信息[转]
#!/usr/bin/env python # -*- coding: utf-8 -*- import rlcompleter, readline readline.parse_and_bind(' ...
- Linux下Python获取IP地址
<lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是 ...
- python 获取对象信息
当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> ...
- python获取机器信息脚本(网上寻找的)
获取机器信息(待测试) # -*- coding: UTF-8 -*- import psutil import json import os import socket import struct ...
- Python 获取车票信息
提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...
- C#获取IP信息
/// <summary> /// 通过IP得到IP所在地省市(Porschev) /// </summary> /// <param name="ip&quo ...
随机推荐
- vue中解决拖动和点击事件的冲突
BUG说明: 鼠标上下方向拖拽,如果松开时鼠标位于悬浮按钮上会默认执行click事件,经验证,click事件与mouse事件的执行顺序为onmousedown =>onmouseup => ...
- 实时收集Storm日志到ELK集群
背景 我们的storm实时流计算项目已经上线几个月了,由于各种原因迟迟没有进行监控,每次出现问题都要登录好几台机器,然后使用sed,shell,awk,vi等各种命令来查询原因,效率非常低下,而且有些 ...
- asprise-ocr-api-sample 高价收破解版64 32位
asprise-ocr-api-sample验证码 高价收破解版64 32位 Reflector 8.5 打开自己的C#代码 完全100%的反编译了
- Python学习笔记(一)——输入与输出
输出:——print() Python中的输出使用print()完成 >>> 在屏幕中输出Hello World >>> print('Hello World') ...
- 数据库MySQL--联合查询
应用场景:当要查询的结果来自多个表,且多个表没有直接的连接关系,但查询的信息一致时 语法: 查询语句1 union(all) 查询语句2 union(all) ..... 注:多条查询语句的查询列数要 ...
- Python 学习杂项
#print("Hello World!") #name = "nihfjkds" age = 454 num1 = 1 num2 = 2 #print(nam ...
- react 高阶组件之小学版
高阶组件 多么高大上的概念,一般用来实现组件逻辑的抽象和复用,在很多三方库(redux)中都被使用到,但是开发普通有任务项目时,如果能合理使用高阶组件,也会显著的提高代码质量. 我们今天就用最简单的 ...
- VS2010-MFC(常用控件:标签控件Tab Control 下)
转自:http://www.jizhuomi.com/software/207.html 上一节讲了标签控件知识的上半部分,本节继续讲下半部分. 标签控件的创建 MFC为标签控件的操作提供了CTabC ...
- spss进行判别分析步骤_spss判别分析结果解释_spss判别分析案例详解
spss进行判别分析步骤_spss判别分析结果解释_spss判别分析案例详解 1.Discriminant Analysis判别分析主对话框 如图 1-1 所示 图 1-1 Discriminant ...
- POJ-2255-Tree Recovery-求后序
Little Valentine liked playing with binary trees very much. Her favorite game was constructing rando ...