百度ip,百度ip地址

百度ip,百度ip地址,百度IP定位API

 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 #返回状态码  }

注:若返回异常,请查看 异常返回状态码 ,确认异常原因。

接口示例:

http://api.map.baidu.com/location/ip?ak=请输入您的AK coor=bd09ll

https://api.map.baidu.com/location/ip?ak=请输入您的AK coor=bd09ll

返回值:

 address: "CN|吉林|长春|None|CERNET|1|None", 

 content: 

 { 

 address: "吉林省长春市", 

 address_detail: 

 { 

 city: "长春市", 

 city_code: 53, 

 district: "", 

 province: "吉林省", 

 street: "", 

 street_number: "" 

 }, 

 point: #当前城市中心点

 { 

 x: "125.31364243", 

 y: "43.89833761" 

 } 

 }, 

 status: 0 }

 

Python代码:

import urllib2

import json

def ip_to_addr(ip,ak):

try:

url='https://api.map.baidu.com/location/ip?ip='+str(ip)+' ak=ak coor=bd09ll'

 response = urllib2.urlopen(url,timeout=3)

 html = response.read()

 decoded = json.loads(html)

 status = decoded['status']

 if status == 0:

 province = decoded['content']['address_detail']['province']

 city = decoded['content']['address_detail']['city']

 return status,province,city

 else:return status

 except Exception as e:

 return 999

 

四、设计

1、在haproxy服务器,用shell脚本(static_haprxy_log.sh)将前一天的日志清洗过滤及统计,生成文本文件,文本每行只有两个字段,IP地址和此IP地址的请求数。然后将文本传到处理数据的主机(免密码scp)。

$ cat static_haprxy_log.sh

#!/bin/bash

DIR='/apps/logs/haproxy/rotate'

cd $DIR

filename='haproxy.log.'$(date -d "1 days ago" +%F)

filename_s='haproxy.static.'$(date -d "1 days ago" +%F)'.txt'

filename_s_old='haproxy.static.'$(date -d "11 days ago" +%F)'.txt'

awk '{print $6}' $filename |awk -F: '{print $1}' |sort|uniq -c|sort -k 1 -nr $filename_s

sed -i 's/^ \{1,9\}//g' $filename_s

scp $filename_s root@$IP://apps/logs/haproxy_statick/

rm -f $filename_s_old

注意:$IP为处理数据的主机的IP地址。

2、接收到数据文本的主机,首先用shell脚本(filter.sh)排除白名单的IP地址(调用接口的IP地址),再用Python脚本(insertMySQL.py)将数据写到MySQL数据库表中。数据库表5个有用字段:IP地址,IP地址请求次数,API返回状态码,省,市。

$ cat filter.sh

#!/bin/bash

cd '/apps/logs/haproxy_statick'

filename_s='haproxy.static.'$(date -d "1 days ago" +%F)'.txt'

cat /apps/sh/whiteList.txt |while read line

do

sed -i "/$line/d" $filename_s

done

filename_old='haproxy.static.'$(date -d "11 days ago" +%F)'.txt'

rm -f $filename_old

3、运行Python程序(insertMySQL.py),将查到的IP地址对应的省,市,返回码更新到数据库表。

TAG标签:

文章标题:百度ip,百度ip地址

转载注明出处:http://www.puyangxw.cn/zonhezixunn/474160.html

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!

随机标签推荐

濮阳新闻