电子说
最近这两天,微博、微信、抖音、知乎等网络平台都上线了IP属地功能,用户的个人主页,或者在发表视频、博文、评论、投票时,会显示用户当前的IP属地,国内用户显示省份/地区,国外用户显示国家/地区。IP属地的上线让很多国外、本地博主现出了原形,出现了IP属地和资料地址不符的情况。
远程服务器地址: 103.205.5.249 远程服务器端口号: 80 API接口: http://api.k780.com/?app=ip.local&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json 返回的JSON数据:
{ "success": "1", "result": { "ip": "102.212.134.15", "proxy": "1", "att": "中国,北京", "operators": "联通" } } 先用网络调试助手测试一下:
#include "cJSON.h" uint8_t parse_api_data(char *jsonstr) { cJSON *root; cJSON *result; char *ip; char *loc; char *net; // printf("recv data: %d-%s ", strlen((const char*)jsonstr), jsonstr); //JSON原始数据 root = cJSON_Parse((const char*)USART2_RX_BUF); if (root != 0) { printf("---JSON format ok--- "); result = cJSON_GetObjectItem(root, "result"); ip = cJSON_GetObjectItem(result, "ip")->valuestring; //164.123.44.15 loc = cJSON_GetObjectItem(result, "att")->valuestring; //中国,北京 net = cJSON_GetObjectItem(result, "operators")->valuestring;//联通 printf("ip:%s loc:%s net:%s ", ip, loc, net); } else { printf("JSON format error:%s ", cJSON_GetErrorPtr()); //输出json格式错误信息 return 1; } cJSON_Delete(root); return 0; }
/* 返回IP地址,地区、时序、国家等信息,默认是英文的 */ http://ip-api.com/json/ /* 可选中文 */ http://ip-api.com/json/?lang=zh-CN /* SOHU接口,非标准JSON */ http://pv.sohu.com/cityjson /* 国内的PCOnline提供的接口,定位不准确 */ http://whois.pconline.com.cn/ipJson.jsp?json=true&ip=14.16.139.216 /* 国外geoplugin公司提供的接口,包括经纬度、时区、货币单位、对美元汇率等信息 */ http://www.geoplugin.net/json.gp以上免费接口都有随时关停的可能,如果用于商业用途,建议还是选择第三方商业公司提供的接口,或者自己开发API接口。本文推荐使用三大地图提供商的IP定位服务,一般支持自动定位,或查询指定IP地址对应的地址,返回信息一般包括国家,省份/城市,行政区划代码,经纬度等信息,数据格式一般支持JSON或XML,请求方式为GET或POST,可以进入官方网站查看详细的API文档,根据需求来选择:
全部0条评论
快来发表一下你的评论吧 !