python实现ip地址查询经纬度定位

 1、此api已经关闭

    https://api.map.baidu.com/highacciploc/v1?qcip=220.181.38.113&ak=你申请的AK&extensions=1&coord=bd09ll

2、现在改成

API首页:http://lbsyun.baidu.com/index.php?title=webapi/ip-api
使用方式:https://api.map.baidu.com/location/ip?ak=请输入您的AK&coor=bd09ll
# -*- coding: utf-8 -*-

import urllib
import urllib2
import json
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

class SendUrl(object):

    def send_url(self, url, headers, data=None):
        opener = urllib2.build_opener()
        request = urllib2.Request(url, data=data, headers=headers)
        response = opener.open(request, timeout=10)
        js = json.loads(response.read().decode("utf-8"))
        print(type(js))
        #print(dir(js))
        #print(js)
        print("================================================")
        print('位置:'+ js['content']['address_detail']['province'] + js['content']['address_detail']['city'])
        print('纬度:'+ js['content']['point']['y'])
        print('经度:'+ js['content']['point']['x'])
        print('节点:'+ js['address'])
        print("================================================")


def Main():
    # ak 需自行注册
    ak = "xxxxxxxxxxxxxxxxxxxxxxxxx"
    sx = SendUrl()

    url = "https://api.map.baidu.com/location/ip"
    data = {"ip": "36.101.234.14", "ak": ak, "coor": "bd09ll"}
    headers = {
        'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"}
    sx.send_url(url, headers, data=urllib.urlencode(data))


if __name__ == '__main__':
    Main()

 

转载于:https://www.cnblogs.com/linyouyi/p/10739850.html

Python通过访问互联网上的IP地址数据库或使用专门的API来获取经度和纬度。其中,IP地址是通过解析数据包获取的。在Python中,可使用多种库和模块来实现IP地址解析、经纬度获取等相关功能,例如: 1. requests和json库 使用requests库可以直接发送HTTP请求获取响应内容,而json库则可以解析JSON格式的响应数据。具体示例代码如下: import requests import json # 定义API接口和IP地址 api_url = "http://ip-api.com/json/" ip_address = "8.8.8.8" # 发送HTTP请求并解析响应数据 api_response = requests.get(api_url + ip_address).json() latitude = api_response["lat"] longitude = api_response["lon"] print("经度:", latitude) print("纬度:", longitude) 2. geopy库 geopy是一款常用于地理编码、地理距离计算等应用的Python库。它内置了多种地理位置API服务接口,可根据IP地址、地址、地名等参数获取位置信息。具体使用方法如下: from geopy import geocoders from geopy.exc import GeocoderTimedOut # 定义IP地址和地理编码服务接口 ip_address = "8.8.8.8" geo_locator = geocoders.GoogleV3() # 根据IP地址获取位置信息 try: location = geo_locator.geocode(ip_address, timeout=10) latitude = location.latitude longitude = location.longitude print("经度:", latitude) print("纬度:", longitude) except GeocoderTimedOut: print("请求超时,请重试!") 以上两种方法都可以实现通过IP地址获取经纬度的功能,具体选择哪种方法可以根据实际需求和使用条件决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值