用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 ...
随机推荐
- C++ vector操作--往列表中添加或更新内容
有个列表,往里面添加内容,如果对象已存在,只更新其属性,否则添加新一项. #include <iostream> #include <string> #include < ...
- Shell 学习(三)
目录 Shell 学习(三) 流程控制 1 if判断 2 case 语句 3 for循环 4 while 循环 2 read 读取控制台输入 2.1 基本语法 2.2 应用实例 3 函数 3.1 系统 ...
- C 删除字符串中某个指定的字符
#include <stdio.h> char *del_char(char *str, char ch) { unsigned char i=0,j=0; while(str[i] != ...
- MySQL数据库之DCL(数据控制语言)
1.MySQL之DCL设置root指定的ip访问 进入mysql:mysql -uroot -p或者mysql -uroot -h127.0.0.1 -p(host默认为127.0.0.1) mysq ...
- 2019 Multi-University Training Contest 3 B 支配树
题目传送门 题意:给出衣服有向无环图(DAG),,定义出度为0的点为中心城市,每次询问给出两个点,求破坏任意一个城市,使得这两个点至少有一个点无法到达中心城市,求方案数. 思路:首先建立反向图,将城市 ...
- 挂载U盘
.fdisk -l 查看当前系统存储盘 (sdaX一般是系统自带, sdbX则是外接) .mount /dev/sdbX /mnt/usb/ (如果usb目录不存在可创建新目录) .umount /m ...
- Windows 关闭win32 控制台
{ fclose(pf); BOOL ret = FreeConsole(); }
- 免费带你体验阿里巴巴旗舰大数据计算产品MaxCompute
什么是MaxCompute? 众所周知,MaxCompute是阿里云推出的承载EB级的数据存储能力,百PB级的单日计算能力,公共云覆盖国内外十几个国家和地区,专有云包含城市大脑在内部署超过100+套的 ...
- csp-s模拟9697题解
题面:https://www.cnblogs.com/Juve/articles/11790223.html 96: 刚一看以为是水题,直接等差数列求和就好了,然后发现模数不是质数,还要1e18*1e ...
- Python collection模块与深浅拷贝
collection模块是对Python的通用内置容器:字典.列表.元组和集合的扩展,它包含一些专业的容器数据类型: Counter(计数器):dict子类,用于计算可哈希性对象的个数. Ordere ...