zoukankan      html  css  js  c++  java
  • 获取ip地址以及获取城市等信息

    class Program
        {
            static void Main(string[] args)
            {
                string ip = GetIP();
                if (ip != null)
                {
                    string city = GetCityByIP(ip);
                    Console.WriteLine("解析的城市名称为 = " + city);
                }
                Console.ReadKey();
            }
    
            static string GetIP()
            {
                string result = GetWebContent("http://city.ip138.com/ip2city.asp");
                if (result != null)
                {
                    int start = result.IndexOf("[") + 1;
                    int end = result.LastIndexOf("]");
                    string ip = result.Substring(start, end - start);//找出ip
                    return ip;
                }
                return null;
            }
    
            static string GetCityByIP(string ip)
            {

            string url = "http://ip.taobao.com/service/getIpInfo.php?ip=" + ip;
            string content = GetWebContent(url);
            if (content != null)
            {
              JsonData res = JsonMapper.ToObject(content);
              if (res != null && res.Count == 2)
              {
                int status = Convert.ToInt32(res["code"].ToString());
                if (status == 0)
                {
                  JsonData js = res["data"];
                  string city = js["city"].ToString();
                  return city;
                }
              }
            }
            return null;

            }

      static string GetWebContent(string url)
            {
                try
                {
                    System.Net.WebClient wc = new System.Net.WebClient();
                    wc.Credentials = System.Net.CredentialCache.DefaultCredentials;
                    return wc.DownloadString(url);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("GetWebContent 发生了错误:" + ex.Message);
                    return null;
                }
            }
        }
  • 相关阅读:
    webpack基础
    LeetCode232. 用栈实现队列做题笔记
    mysql 时间加减一个月
    leetcode 1381. 设计一个支持增量操作的栈 思路与算法
    LeetCode 141. 环形链表 做题笔记
    leetcode 707. 设计链表 做题笔记
    leetcode 876. 链表的中间结点 做题笔记
    leetcode 143. 重排链表 做题笔记
    leetcode 1365. 有多少小于当前数字的数字 做题笔记
    LeetCode1360. 日期之间隔几天 做题笔记
  • 原文地址:https://www.cnblogs.com/MrZivChu/p/ipcity.html
Copyright © 2011-2022 走看看