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> 来自:上海市
对于字符串的操作,相信楼主自己会搞定。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
- 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; }