调用百度的IP定位API(首先需要去百度开放平台注册申请key值http://lbsyun.baidu.com/apiconsole/key)

http://api.map.baidu.com/location/ip?ip=xx.xx.xx.xx&ak=您的AK&coor=bd09ll
或
https://api.map.baidu.com/location/ip?ip=xx.xx.xx.xx&ak=您的AK&coor=bd09ll

参数

返回结果示例:

{
address: "CN|北京|北京|None|CHINANET|1|None", #详细地址信息
content: #结构信息
{
address: "北京市", #简要地址信息
address_detail: #结构化地址信息
{
city: "北京市", #城市
city_code: 131, #百度城市代码
district: "", #区县
province: "北京市", #省份
street: "", #街道
street_number: "" #门牌号
},
point: #当前城市中心点
{
x: "116.39564504", #当前城市中心点经度
y: "39.92998578" #当前城市中心点纬度
}
},
status: 0 #结果状态返回码
}

淘宝API

http://ip.taobao.com/service/getIpInfo.php?ip=

返回结果示例:

     {"ip": "112.5.212.90",
"country": "中国",
"area": "",
"region": "福建",
"city": "福州",
"county": "XX",
"isp": "移动",
"country_id": "CN",
"area_id": "",
"region_id": "350000",
"city_id": "350100",
"county_id": "xx",
"isp_id": "100025"
}
}
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
import requests
from bs4 import BeautifulSoup class Fill_Own_Ip(object): def __init__(self):
self.getIpInfoUrl_TaoBao = 'http://ip.taobao.com/service/getIpInfo.php?ip='
self.getIpInfoUrl_138 = 'http://ip138.com/ips138.asp' def sele_ip_taobao(self, ip):
url = self.getIpInfoUrl_TaoBao + str(ip)
try:
json_ret = requests.get(url, timeout=5).text
if json_ret:
ret = json.loads(json_ret)
ip_loc = ret['data']['country'] + ret['data']['region'] + ret['data']['city'] + ret['data']['isp']
else:
ip_loc = ''
except Exception as e:
ip_loc = ''
return ip_loc def sele_ip_138(self,ip):
kw2 = {'ip': ip}
try:
r = requests.request('GET', self.getIpInfoUrl_138, params=kw2)
r.encoding = 'gbk'
demo = r.text
soup = BeautifulSoup(demo, "html.parser")
soup = soup.ul
ip_loc = soup.contents[2].string[6:].split(' ')[0] + soup.contents[0].string[5:]
except:
ip_loc = ''
return ip_loc if __name__ == '__main__': obj = Fill_Own_Ip()
ret_taobao = obj.sele_ip_taobao('112.5.212.90')
ret_138 = obj.sele_ip_138('112.5.212.90')
print 'ret_taobao',ret_taobao
print 'ret_138',ret_138

Python代码

国外的一个查询API

http://ip-api.com/json/  # 国际化英文显示

http://ip-api.com/json/?lang=zh-CN  # 中文显示

http://ip-api.com/json/115.191.200.34?lang=zh-CN  # 查询某个ip的信息

返回结果示例:

{
"accuracy": 50,
"as": "AS9808 Guangdong Mobile Communication Co.Ltd.",
"city": "Xiamen",
"country": "China",
"countryCode": "CN",
"isp": "China Mobile Guangdong",
"lat": 24.478,
"lon": 118.019,
"mobile": true,
"org": "China Mobile Guangdong",
"proxy": false,
"query": "xxx.xxx.xxx.xxx",
"region": "FJ",
"regionName": "Fujian",
"status": "success",
"timezone": "Asia/Shanghai", "zip": ""
}

126 IP API

http://ip.ws.126.net/ipquery?ip=

返回结果示例:

var lo="北京市", lc="朝阳区"; var localAddress={city:"朝阳区", province:"北京市"};

快速获取IP地址的各种方法的更多相关文章

  1. 快速获取 IP 地址

    IP 地址可以分为两类,公用和私有(专用).公用 IP 是唯一的 IP 地址,可以从 Internet 访问.专用 IP 地址保留供您专用网络内部使用,而不会直接暴露给 Internet. 本文将介绍 ...

  2. windows下获取IP地址的两种方法

    windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...

  3. js获取IP地址方法总结_转

    js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...

  4. Java获取ip地址的几种方法

    以下内容介绍下java获取ip地址的几种思路. 1.直接利用java.net.InetAddress类获取,不过这种方法只在windows环境下有效,在linux环境下只能获取localhost地址( ...

  5. asp.net获取ip地址的方法

    在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的I ...

  6. js获取IP地址的方法小结

    s代码获取IP地址的三种方法,在js中取得客户端的IP地址. 原文地址:http://www.jbxue.com/article/11338.html 1,js取得IP地址的方法一 <scrip ...

  7. 1. 通过DHCP服务器动态获取IP地址之后无法上网的解决方法

    故障:内网正常,在同一个局域网内的其它PC端通过DHCP获取IP地址并且可以正常上网. 1.通过wireshark抓包,使用ipconfig /renew时,wireshark内出现DHCP请求服务, ...

  8. php 获取ip地址的5种方法,插入用户登录日志实例

    php 获取ip地址的5种方法,插入用户登录日志实例,推荐使用第二种方法 <?php //方法1: $ip = $_SERVER["REMOTE_ADDR"]; echo $ ...

  9. js获取IP地址多种方法实例教程

    js获取IP地址方法总结   js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338. ...

随机推荐

  1. Python:从入门到实践--第三章--列表简介--练习

    #1.将一些朋友的姓名存储在一个列表中,并将其命名为friends.依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来. #2.继续使用1中的列表,为每人打印一条消息,每条消息包含相同的问候语 ...

  2. 常见JS倒计时

    https://www.jb51.net/Special/356.htm  //JS倒计时  <button onclick="resetTime(60)">启动倒计时 ...

  3. Go学习之初出茅庐

    在一个月黑风高的夜晚,机缘巧合与Go语言一面之缘,被她的简洁.灵活.高效所吸引,让我有深入学习的冲动,现在开始我的成长之路吧.

  4. 剑指offer前6题

    二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 时间限制:1秒 ...

  5. [经验分享] MySQL Innodb表导致死锁日志情况分析与归纳【转,纯学习】

    在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下: (1)insert into backup_ta ...

  6. mysql中的备份(backup)和恢复(recovery)

    (一)备份类型(backup type) 物理和逻辑备份(Physical Versus Logical Backup) 物理备份是指直接复制存储数据库内容的目录和文件,这种类型的备份适用于出现问题时 ...

  7. vue state

    vuex单一状态树,直接地定位任一特定的状态片段. vuex状态存储响应式,唯一store实例,从store中读取状态: 1.在计算属性中返回某个状态 2.在根实例中注册store选项,该 store ...

  8. 【爬虫】如何用python+selenium网页爬虫

    一.前提 爬虫网页(只是演示,切勿频繁请求):https://www.kaola.com/ 需要的知识:Python,selenium 库,PyQuery 参考网站:https://selenium- ...

  9. table动态增加删除

    基于网上代码修改实现动态添加表数据行 <!DOCTYPE html> <html lang="cn"> <html> <head> ...

  10. [双硬盘GPT分区安装linux] ----安装

    最近机器学习课程需要用到pytorch, 基于cuda8的pytorch的需要,最终决定还是要安装一个linux系统在我的windows10机器上.本篇记录安装过程备用. 本人笔记本是联想Y520,系 ...