获取IP,调用新浪接口获取所在地点的辅助类

 1 using System;
 2 using System.IO;
 3 using System.Net;
 4 using System.Text;
 5 using System.Web.Script.Serialization;
 6
 7 namespace IpUtils
 8 {
 9     public class IpDetail
10     {
11         public String Ret { get; set; }
12
13         public String Start { get; set; }
14
15         public String End { get; set; }
16
17         public String Country { get; set; }
18
19         public String Province { get; set; }
20
21         public String City { get; set; }
22
23         public String District { get; set; }
24
25         public String Isp { get; set; }
26
27         public String Type { get; set; }
28
29         public String Desc { get; set; }
30     }
31
32     public class IpHelper
33     {
34         /// <summary>
35         /// 获取IP地址的详细信息,调用的借口为
36         /// http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip={ip}
37         /// </summary>
38         /// <param name="ipAddress">请求分析得IP地址</param>
39         /// <param name="sourceEncoding">服务器返回的编码类型</param>
40         /// <returns>IpUtils.IpDetail</returns>
41         public static IpDetail Get(String ipAddress,Encoding sourceEncoding)
42         {
43             String ip = string.Empty;
44             if(sourceEncoding==null)
45                 sourceEncoding = Encoding.UTF8;
46             using (var receiveStream = WebRequest.Create("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip="+ipAddress).GetResponse().GetResponseStream())
47             {
48                 using (var sr = new StreamReader(receiveStream, sourceEncoding))
49                 {
50                     var readbuffer = new char[256];
51                     int n = sr.Read(readbuffer, 0, readbuffer.Length);
52                     int realLen = 0;
53                     while (n > 0)
54                     {
55                         realLen = n;
56                         n = sr.Read(readbuffer, 0, readbuffer.Length);
57                     }
58                     ip = sourceEncoding.GetString(sourceEncoding.GetBytes(readbuffer, 0, realLen));
59                 }
60             }
61             return  !string.IsNullOrEmpty(ip)?new JavaScriptSerializer().Deserialize<IpDetail>(ip):null;
62         }
63     }
64
65     public class EncodingHelper
66     {
67         public static String GetString(Encoding source, Encoding dest, String soureStr)
68         {
69             return dest.GetString(Encoding.Convert(source, dest, source.GetBytes(soureStr)));
70         }
71
72         public static String GetString(Encoding source, Encoding dest, Char[] soureCharArr, int offset, int len)
73         {
74             return dest.GetString(Encoding.Convert(source, dest, source.GetBytes(soureCharArr, offset, len)));
75         }
76     }
77 }

获取IP,调用新浪接口获取所在地点的辅助类

时间: 2024-10-05 05:05:00

获取IP,调用新浪接口获取所在地点的辅助类的相关文章

php利用新浪接口查询ip获取地理位置示例

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <?php function getIPLoc_sina($queryIP){   $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP;   $ch = curl_init($url);    curl_setopt($ch,CURLOPT_ENCODING ,'utf8');

Python如何调用新浪api接口的问题

前言:这些天在研究如何调用新浪开放平台的api分析新浪微博用户的数据 成果:成功调用了新浪api获取了用户的一些个人信息和无数条公共微博 不足:新浪开放平台访问有限制,返回的数据着实有限,不足以分析问题,真的要分析问题还是得个人写爬虫 下面是调用新浪开放api的过程: 第一步:按这个做就行 http://www.cnblogs.com/dhsunny/p/3578399.html?utm_source=tuicool&utm_medium=referral 其中有一不那个新浪api测试工具是打不

使用WebRequest对象调用新浪天气预报&lt;转&gt;

// 待请求的地址 string url = "http://www.cnblogs.com"; // 创建 WebRequest 对象,WebRequest 是抽象类,定义了请求的规定, // 可以用于各种请求,例如:Http, Ftp 等等. // HttpWebRequest 是 WebRequest 的派生类,专门用于 Http System.Net.HttpWebRequest request = System.Net.HttpWebRequest.Create(url) a

淘宝(新浪)API获取IP地址位置信息

1 package com.parse; 2 3 import java.io.BufferedReader; 4 import java.io.DataOutputStream; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 import java.io.UnsupportedEncodingException; 8 import java.net.HttpURLConnection; 9 import

JS 新浪API获取IP归属地

http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 返回值数据格式:var remote_ip_info = {“ret”:1,”start”:”59.37.164.179″,”end”:”59.37.165.17″,”country”:”\u4e2d\u56fd”,”province”:”\u5e7f\u4e1c”,”city”:”\u6c5f\u95e8″,”district”:””,”isp”:”\u7535\u4fe1

c#获取ip的方法cdn加速获取真实ip方法

服务端://方法一HttpContext.Current.Request.UserHostAddress; //方法二HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];//方法三string strHostName = System.Net.Dns.GetHostName();string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).Ge

JS获取IP、MAC和主机名的几种方法

方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000): 获取客户端IP. <HTML> <HEAD> <TITLE>GetLocalIP</TITLE> </HEAD> <BODY> 获取IP: <script language="JavaScript"> function GetLocalIPAddr(){ var oSetting = null; v

IT忍者神龟之S获取IP、MAC和主机名多方法、多平台

分享下js获取Ip地址.Mac地址与主机名的几种方法与实现代码,支持多平台下Ip地址获取,有需要的朋友参考下. 方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000): Js获取客户端IP地址. 复制代码代码示例: <HTML> <HEAD> <TITLE>GetLocalIP-js获取Ip地址-www.jbxue.com</TITLE> </HEAD> <BODY> 获取IP: <

获取ip地址,

js不能获取ip,nodejs服务器可以.下面通过访问搜狐的接口得到ip地址<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>JavaScript获取客户端IP[利用新浪接口]</title> </head> <body> <script src=&