快速查询中国IP地址信息,包含国家、省份、城市、和网络运营商。非中国IP只支持查询国家。
Install-Package IPTools.China
IpTool.Search("你的ip地址");
示例.
var ipinfo = IpTool.Search("171.210.12.163");
Console.WriteLine(ipinfo.Country); // 中国
Console.WriteLine(ipinfo.Province); // 四川省
Console.WriteLine(ipinfo.City); // 成都市
Console.WriteLine(ipinfo.NetworkOperator);// 电信
不支持国际化,所以不能使用IpTool.SearchWithI18NAsync()
。
单线程,双重for循环,查询65025个IP,花费170毫秒。
快速查询全球IP信息,支持多语言,地理信息包括国家、省份、城市、邮政编码、纬度和精度。
Install-Package IPTools.International
IpTool.Search("你的ip地址");
示例.
var ipinfo = IpTool.SearchWithI18N("171.210.12.163");
Console.WriteLine(ipinfo.Country); // 中国
Console.WriteLine(ipinfo.CountryCode); // CN
Console.WriteLine(ipinfo.Province); // 四川省
Console.WriteLine(ipinfo.ProvinceCode); // SC
Console.WriteLine(ipinfo.City); // 成都
Console.WriteLine(ipinfo.Latitude); // 30.6667
Console.WriteLine(ipinfo.Longitude); // 104.6667
Console.WriteLine(ipinfo.AccuracyRadius);// 50
IpTool.SearchWithI18N("你的ip地址");
示例.
var ipinfo = IpTool.SearchWithI18N("171.210.12.163","en");//如果不设置 language code, 默认将会使用中文
Console.WriteLine(ipinfo.Country); // China
Console.WriteLine(ipinfo.CountryCode); // CN
Console.WriteLine(ipinfo.Province); // Sichuan
Console.WriteLine(ipinfo.ProvinceCode); // SC
Console.WriteLine(ipinfo.City); // Chengdu
Console.WriteLine(ipinfo.Latitude); // 30.6667
Console.WriteLine(ipinfo.Longitude); // 104.6667
Console.WriteLine(ipinfo.AccuracyRadius);// 50
默认语言为中文,如何改变?使用下面的代码进行设置。中文为 zh-CN
,英文为en
IpToolSettings.DefaultLanguage = "en";
单线程,双重for循环,查询65025个IP,花费1500毫秒。
IPTools 提供了 HttpContext
对象的扩展方法。
使用:
HttpContext.GetRemoteIpInfo();
HttpContext.GetRemoteIpInfo(headerKey); // 从请求头获取ip地址信息,如果你使用了nginx、haproxy等代理
IPTools.China 和 IPTools.International 都实现了IIpSearcher
,IpTool
类在加载时会检测你所安装的程序包进行初始化,且仅仅初始化一次。IpTool
具有三个静态只读属性,分别是 DefaultSearcher
、IpChinaSearcher
、IpAllSearcher
。
DefaultSearcher
。IpTool.Search()
和 IpTool.SearchWithI18N()
将会使用的默认Ip搜索器。IpChinaSearcher
。对应 IPTools.China 实现的搜索器。IpAllSearcher
。对应 IPTools.International 实现的搜索器。如果你只是安装了 IPTools.China 那么,DefaultSearcher
将会是 IpChinaSearcher
,IpAllSearcher
将会为 null。
如果你只是安装了 IPTools.International 那么,DefaultSearcher
将会是 IpAllSearcher
,IpChinaSearcher
将会为 null。
如果你同时安装了以上两个组件,那么默认情况下 DefaultSearcher
将会是 IpChinaSearcher
,IpChinaSearcher
和 IpAllSearcher
都不会为null。
改变DefaultSearcher
所使用的默认 Searcher 请使用下面的代码,如果你同时安装了两个组件才会生效。
IpToolSettings.DefalutSearcherType = IpSearcherType.China;
IpToolSettings.DefalutSearcherType = IpSearcherType.International;
https://github.com/stulzq/IPTools 如果你觉得有用,欢迎来个 star 支持一下。