手机
当前位置:查字典教程网 >编程开发 >C#教程 >使用淘宝ip地址库查ip的示例
使用淘宝ip地址库查ip的示例
摘要:使用淘宝ip地址库的api查询ip地址信息。TaobaoIPHelper.cs复制代码代码如下:usingSystem;us...

使用淘宝ip地址库的api查询ip地址信息。

TaobaoIPHelper.cs

复制代码 代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace LixinCommon

{

/// <summary>

/// 淘宝IP地址库帮助类。

/// 提供查询ip地址信息功能。

/// 服务的主页:http://ip.taobao.com

/// 作者:lixin

/// 作者Email:lixin@lixin.me

/// 日期:2014年3月30日

/// 备注:为了保障服务正常运行,每个用户的访问频率需小于10qps。

/// </summary>

public class TaobaoIPHelper

{

/// <summary>

/// 查询ip信息

/// </summary>

/// <param name="ip"></param>

/// <returns></returns>

public static TaobaoIP GetIP(string ip)

{

System.Net.WebClient client = new System.Net.WebClient();

try

{

string data = client.DownloadString("http://ip.taobao.com/service/getIpInfo.php?ip=" + ip);

//当code==1时,表示失败

if (data.IndexOf(""code":1") > -1)

{

return new TaobaoIP()

{

code = 1,

errorMsg = data

};

}

using (System.IO.MemoryStream mm = new System.IO.MemoryStream(Encoding.UTF8.GetBytes(data)))

{

System.Runtime.Serialization.Json.DataContractJsonSerializer myJson = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(TaobaoIP));

TaobaoIP item = (TaobaoIP)myJson.ReadObject(mm);

return item;

}

}

catch (Exception ex)

{

return new TaobaoIP()

{

code = 1,

errorMsg = ex.Message,

data = new TaobaoIP_Data() { }

};

}

}

/// <summary>

/// 根据域名返回域名的ip信息

/// </summary>

/// <param name="domain"></param>

/// <returns></returns>

public static TaobaoIP[] GetDomain(string domain)

{

System.Net.IPAddress[] ips = System.Net.Dns.GetHostAddresses(domain);

TaobaoIP[] result = new TaobaoIP[ips.Length];

for (int i = 0, j = ips.Length; i < j; i++)

{

result[i] = GetIP(ips[i].ToString());

}

return result;

}

}

public struct TaobaoIP

{

/// <summary>

/// 0:成功;1:失败

/// </summary>

public int code;

/// <summary>

/// ip响应信息

/// </summary>

public TaobaoIP_Data data;

/// <summary>

/// 错误信息

/// </summary>

[NonSerialized]

public string errorMsg;

}

public struct TaobaoIP_Data

{

/// <summary>

/// ip地址

/// </summary>

public string ip;

/// <summary>

/// 国家

/// </summary>

public string country;

/// <summary>

/// 区域

/// </summary>

public string area;

/// <summary>

/// 省份

/// </summary>

public string region;

/// <summary>

/// 城市

/// </summary>

public string city;

/// <summary>

/// 运营商

/// </summary>

public string isp;

public string country_id;

public string area_id;

public string region_id;

public string city_id;

public string county_id;

public string isp_id;

}

}

复制代码 代码如下:

TaobaoIP result1 = TaobaoIPHelper.GetIP("8.8.8.8");

if (result1.code == 0)

{

Console.WriteLine(string.Format("调用成功。该ip的国家为{0},省份为{1},城市为{2},运营商为{3}"

, result1.data.country, result1.data.region, result1.data.city, result1.data.isp)

);

}

else

{

Console.WriteLine("失败,原因为:"+result1.errorMsg);

}

TaobaoIP[] result2 = TaobaoIPHelper.GetDomain("lixin.me");

foreach (TaobaoIP item in result2)

{

if (item.code == 0)

{

Console.WriteLine(string.Format("调用成功。该ip的国家为{0},省份为{1},城市为{2},运营商为{3}"

, item.data.country, item.data.region, item.data.city, item.data.isp)

);

}

else

{

Console.WriteLine("失败,原因为:" + item.errorMsg);

}

}

【使用淘宝ip地址库查ip的示例】相关文章:

C# 使用匿名函数解决EventHandler参数传递的难题

用C#写的ADSL拨号程序的代码示例

利用thrift实现js与C#通讯的实例代码

解析使用enumerator模式简化异步操作的详解

c#进度条 progressBar 使用方法的小例子

C# 禁止应用程序多次启动的实例

C#简单获取时间差的小例子

c# 应用事务的简单实例

C#之IP地址和整数互转的小例子

c#数据库与TXT导入导出的实例

精品推荐
分类导航