日期:2014-05-18  浏览次数:20618 次

asp.net(C#) 根据ip 判断城市(类似赶集 58)
asp.net(C#) 根据ip 判断城市(类似赶集 58)

求方法,求解释,,谢谢了

------解决方案--------------------
调用Web服务,或者要有ip数据库。
------解决方案--------------------
纯真ip数据库
------解决方案--------------------
http://www.ip.cn/getip2.php?action=queryip&ip_url=211.144.216.41
get方法访问这个地址,后面的ip,换成你想要的,然后会有得到response,是
您查询的IP是:<span class='orange'>211.144.216.41</span> 来自:上海市 
对于字符串的操作,相信楼主自己会搞定。
------解决方案--------------------
探讨

http://www.ip.cn/getip2.php?action=queryip&amp;ip_url=211.144.216.41
get方法访问这个地址,后面的ip,换成你想要的,然后会有得到response,是
您查询的IP是:<span class='orange'>211.144.216.41</span> 来自:上海市
对于字符串的操作,相信楼主自己会搞定。

------解决方案--------------------
探讨
纯真ip数据库

------解决方案--------------------
探讨

引用:

http://www.ip.cn/getip2.php?action=queryip&amp;amp;ip_url=211.144.216.41
get方法访问这个地址,后面的ip,换成你想要的,然后会有得到response,是
您查询的IP是:<span class='orange'>211.144.216.41</span> 来自:上海市
对于字符串的……

------解决方案--------------------
C# code

  public string GetNetwork2() {
//            string url = "http://whois.pconline.com.cn/ip.jsp";
            string url = "http://counter.sina.com.cn/ip";
            string ip = SitePower.Common.StringHelper.GetClientIP();
            string query = "ip=" + ip;
            url += "?ip=" + ip;
            string text = GetResponseText(url, query);
            int startstr=text.IndexOf("Array(");
            int endstr=text.IndexOf("\");");
            string[] textarray = text.Substring(startstr, (endstr - startstr)).Split(',');
            return textarray[3].Replace("\"",string.Empty).Trim();
        
        }
       
        /// <summary>
        /// 获取响应的数据流。
        /// </summary>
        /// <returns></returns>
        public Stream GetResponseStream(string API_URL, string query) {

            var data = Encoding.UTF8.GetBytes(query);

            var request = (HttpWebRequest)WebRequest.Create(API_URL);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;

            using (var stream = request.GetRequestStream())
                stream.Write(data, 0, data.Length);

            return request.GetResponse().GetResponseStream();
        }

        /// <summary>
        /// 获取响应的文本。
        /// </summary>
        /// <returns></returns>
        public string GetResponseText(string API_URL, string query) {
            var text = string.Empty;

            using (var reader = new StreamReader(this.GetResponseStream(API_URL, query), Encoding.Default))
                text = reader.ReadToEnd();

            return text;
        }