• IP地址查询API的C#实现


    一切从登录记录开始

    看到TX的登录记录之后,突然想去在登录环节也加上这个功能,然后就写了下面的具体实现代码。现在一点也不纠结IP在数据库中保存类型是UNSIGNED INT还是VARCHAR了。

    干货来了哦_

    using System.Net;
    using System.Web;
    using Newtonsoft.Json;
    using System.Web.Script.Serialization;
    
    namespace ConsoleApplication1
    {
        public class IPToLocation
        {
            public IPLocation GetLocationByTB(string ip)
            {
                if (string.IsNullOrEmpty(ip))
                    return null;
                var webClient = new WebClient();
                var entity = webClient.DownloadString(string.Format("http://ip.taobao.com/service/getIpInfo.php?ip={0}",ip));
                var json = new JavaScriptSerializer().Deserialize<dynamic>(entity);
                if (json == null || json["code"] == 1)
                    return GetLocationBySina(ip);    //调用其它接口
                var data = new JavaScriptSerializer().Serialize(json["data"]);
                IPLocation model = JsonConvert.DeserializeObject<IPLocation>(data);
                return model;
            }
    
            public IPLocation GetLocationBySina(string ip)
            {
                // http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip={0}
                // 其它同上哦.
            }
        }
    
        [JsonObject]
        public class IPLocation
        {
            [JsonProperty]
            public string IP { get; set; }
            [JsonProperty]
            public string Country { get; set; }
            [JsonProperty]
            public string Country_Id { get; set; }
            [JsonProperty]
            public string Area { get; set; }
            [JsonProperty]
            ...
            ...
        }
    }
    

    源代码下载

  • 相关阅读:
    查找->静态查找表->次优查找(静态树表)
    P1993-小K的农场
    P1983-车站分级
    P1268-树的重量
    P1113-杂务
    P1265-公路修建
    P2330-[SCOI2005]繁忙的都市
    P1546-最短网络
    P1144-最短路计数
    P1462-通往奥格瑞玛的道路
  • 原文地址:https://www.cnblogs.com/mafly/p/4503871.html
Copyright © 2020-2023  润新知