用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 ...
随机推荐
- WebApi 如何 优雅的 对 输入输出 解密加密
原文:WebApi 如何 优雅的 对 输入输出 解密加密 这不是变态的想法, 这只是对现实需求的转化. 因为有密文, 所以本文不适用于浏览器到服务端的数据交换; 只适用于服务端到服务端的数据传输. 用 ...
- Django 分页器模板
返回链接: djang ORM 分页器模板: class Pagination(object): def __init__(self,current_page,all_count,per_page_n ...
- 什么是哈希Hash(散列函数)
Hash(散列函数) Hash,一般翻译做散列.杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就 ...
- boost相关函数
1.boost::scoped_ptr是一个比较简单的智能指针,它能保证在离开作用域之后它所管理对象能被自动释放 #include <iostream> #include <boos ...
- leetcode-8-字符串转换整数(atoi)
题目描述: 方法一:正则 class Solution: def myAtoi(self, str: str) -> int: return max(min(int(*re.findall('^ ...
- Tomcat - 基本知识
基本概念 Tomcat是接收和解析http请求,并将结果返回客户端的应用程序 轻量级的web应用服务器 适用于并发性不是很高的系统中 开发和调试jsp的首选 类似的应用程序:Jetty, JBoss/ ...
- 【JZOJ6277】矩阵游戏
description analysis 设所有操作之后,\(f[i]\)表示\(i\)行乘的数,\(g[j]\)表示\(j\)列乘的数,那么 \[Answer=\sum^{n}_{i=1}\sum^ ...
- thinkphp 切换数据库
除了在预先定义数据库连接和实例化的时候指定数据库连接外,我们还可以在模型操作过程中动态的切换数据库,支持切换到相同和不同的数据库类型.用法很简单, 只需要调用Model类的db方法,用法: 常州大理石 ...
- Ubuntu-WPS无法输入中文
WPS无法输入中文 原因:环境变量未正确设置 $ vi /usr/bin/wps,添加以下内容: #!/bin/bash export XMODIFIERS="@im=fcitx" ...
- Kafka和RabbitMQ 对比
1) Kafka成为业界大数据松耦合架构,异步,队列 特点:吞吐量高50m/s. Kafka和RabbitMQ都是MQ机制,它差异 Kafka作为大数据产品,可以作为数据源,也可以作为结果数据中转 ...