用淘宝ip地址库查ip
这是一个通过调用淘宝ip地址库实现ip地址查询的功能类
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") > -)
{
return new TaobaoIP()
{
code = ,
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 = ,
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 = , 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 == )
{
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 == )
{
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的更多相关文章
- Python之通过IP地址库获取IP地理信息
利用第三方的IP地址库,各个公司可以根据自己的业务情况打造自己的IP地址采集分析系统.例如游戏公司可以采集玩家地区信息,进行有针对性的运营策略,还可能帮助分析玩家网络故障分布等等. #!/usr/bi ...
- 通过淘宝IP地址库获取IP位置
地址:http://ip.taobao.com/ 提供的服务包括: 1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家.省.市和运营商. 2. 用户可以根据自己 ...
- 利用纯真ip地址库 查询 ip所属地
1. 首先下周数据源,选择是纯真数据库:http://www.cz88.net/ 2. 安装后,打开软件,将数据导出为txt格式. 3. 处理数据,参照网上的文章(http://www.jb51.ne ...
- 淘宝IP地址库
淘宝官方ip地址库 http://ip.taobao.com/ 接口说明 1. 请求接口(GET): http://ip.taobao.com/service/getIpInfo.php?ip=[ip ...
- Java ip地址查询,根据ip接口获得ip所在省市区,邮编,运营商等
早上一来,项目经理就说需要添加一个用户ip归属地查询功能,然后在网上搜罗半天,研究出一个比较简单的方法,通过接口返回地址json数据 有百度接口,新浪接口,这里用的是淘宝ip接口 通过淘宝IP地址库获 ...
- Delphi使用JSON解析调用淘宝IP地址库REST API 示例
淘宝IP地址库:http://ip.taobao.com,里面有REST API 说明. Delphi XE 调试通过,关键代码如下: var IdHTTP: TIdHTTP; RequestURL: ...
- 淘宝IP地址库采集器c#代码
这篇文章主要介绍了淘宝IP地址库采集器c#代码,有需要的朋友可以参考一下. 最近做一个项目,功能类似于CNZZ站长统计功能,要求显示Ip所在的省份市区/提供商等信息.网上的Ip纯真数据库,下载下来一看 ...
- 淘宝IP地址库API接口(PHP)通过ip获取地址信息
淘宝IP地址库网址:http://ip.taobao.com/ 提供的服务包括: 1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家.省.市和运营商. 2. 用 ...
- 淘宝IP地址库采集
作者:阿宝 更新:2016-08-31 来源:彩色世界(https://blog.hz601.org/2016/08/31/taobao-ip-sniffer/index.html) 简述 当初选择做 ...
随机推荐
- 【BZOJ 3050】【USACO2013 Jan】Seating 线段树
线段树维护4个标记, 昨天互测时题意理解错了,今天上午才发现. #include<cstdio> #include<cstring> #include<algorithm ...
- SSM框架搭建(转发)
SSM框架,顾名思义,就是Spring+SpringMVC+mybatis. 通过Spring来将各层进行整合, 通过spring来管理持久层(mybatis), 通过spring来管理handler ...
- C# for循环及循环嵌套
格式(for循环四要素:初始条件.循环条件.循环体.状态改变) for (int i=1<初始条件>;i<=n<循环条件>;i++<状态改变>) { < ...
- 63.Android面试题精选 (转)
1.Android dvm 的进程和Linux的进程,应用程序的进程是否为同一个概念: 答:dvm是dalivk虚拟机.每一个android应用程序都在自己的进程中运行,都拥有一个dalivk虚拟机实 ...
- Hadoop-2.2.0 (传 hadoop-2.2.0.tar.gz)
配置hadoop 2.1 上传hadoop包 2.2 解压hadoop包 首先在根目录下创建一个cloud目录 mkdir /cloud tar -zxvf hadoop-2.2.0.tar.gz - ...
- bzoj 3196 树套树模板
然而我还是在继续刷水题... 终于解开了区间第k大的心结... 比较裸的线段树套平衡树,比较不好想的是求区间第k大时需要二分一下答案,然后问题就转化为了第一个操作.复杂度nlog3n.跑的比较慢... ...
- 【BZOJ-1026】windy数 数位DP
1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5230 Solved: 2353[Submit][Sta ...
- Jenkins/CCNET发送邮件策略和注意事项,以及邮箱类型的选择
QQ邮箱永远也不要用,原因:安全机制太强导致在CCNET/Jenkins中极难配置,且反垃圾太强,有些项目会涉及到敏感词一样屏蔽,如果发邮件找客服求助时,基本是无果. 如果在免费领域,推荐使用免费企业 ...
- hdu1402 FFT入门
参考这里:http://www.cnblogs.com/pdev/p/4354705.html http://www.cnblogs.com/pdev/p/4354629.html 题意:求大数乘法 ...
- poj 2653 线段相交
题意:一堆线段依次放在桌子上,上面的线段会压住下面的线段,求找出没被压住的线段. sol:从下向上找,如果发现上面的线段与下面的相交,说明被压住了.break掉 其实这是个n^2的算法,但是题目已经说 ...