BMap.NET/HTTPService/IPService.cs

(完整代码) 1KB

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;

namespace BMap.NET.HTTPService
{
    /// <summary>
    /// 提供IP定位相关服务
    /// </summary>
    public class IPService : ServiceBase
    {
        private static string _ip_url = "http://api.map.baidu.com/location/ip";

        /// <summary>
        /// 根据IP获取对应位置
        /// </summary>
        /// <param name="ip">IP地址 为空表示访问者IP</param>
        /// <returns></returns>
        public JObject LocationByIP(string ip = null)
        {
            try
            {
                if (_vm == VerificationMode.IPWhiteList)  //IP 白名单校验
                {
                    string url = _ip_url + "?ip=" + (ip == null ? "" : ip) + "&coor=bd09ll&output=json&ak=" + _ak;
                    string json = DownloadString(url);
                    return JsonConvert.DeserializeObject(json) as JObject;
                }
                else  //SN校验
                {
                    string url = _ip_url + "?ip=" + (ip == null ? "" : ip) + "&coor=bd09ll&output=json&ak=" + _ak;
                    IDictionary<string, string> param = new Dictionary<string, string> { { "ip", ip == null ? "" : ip }, { "coor", "bd09ll" }, { "output", "json" }, { "ak", _ak } };
                    string sn = AKSNCaculater.CaculateAKSN(_ak, _sk, _ip_url.Split(new string[] { ".com" }, StringSplitOptions.None)[1], param);  //计算sn
                    string json = DownloadString(url + "&sn=" + sn);
                    return JsonConvert.DeserializeObject(json) as JObject;
                }
            }
            catch
            {
                return null;
            }
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。