快速查询IP信息,支持国内和国外IP信息查询,支持查询经纬度,地理位置最高支持到城市。

1. IPTools.China

快速查询中国IP地址信息,包含国家、省份、城市、和网络运营商。非中国IP只支持查询国家。

(1) 安装

Install-Package IPTools.China

(2) 下载数据库文件

https://github.com/stulzq/IPTools/raw/master/db/ip2region.db

将数据库文件下载完成以后,放到你的项目根目录(与*.csprj文件同级),并设置复制到输出目录

1.2.0版本开始就取消了将数据库文件嵌入到程序集,方便更新,且减少程序集大小。

(3) 使用

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);// 电信

(4) 国际化

不支持国际化,所以不能使用IpTool.SearchWithI18NAsync()

(5) 性能测试

单线程,双重for循环,查询65025个IP,花费170毫秒。

2. IPTools.International

快速查询全球IP信息,支持多语言,地理信息包括国家、省份、城市、邮政编码、纬度和精度。

(1) 安装

Install-Package IPTools.International

(2) 下载数据库文件

https://github.com/stulzq/IPTools/raw/master/db/GeoLite2-City.mmdb

将数据库文件下载完成以后,放到你的项目根目录(与*.csprj文件同级),并设置复制到输出目录

1.2.0版本开始就取消了将数据库文件嵌入到程序集,方便更新,且减少程序集大小。

(3) 使用

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

(4) 国际化

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";

(5) 提升查询速度

通过以下设置,将会提升一倍的查询速度,其原理是将数据库文件完全加载到内存,付出的代价是内存将会增加60-70M,以空间换时间,这点需要注意。

IpToolSettings.LoadInternationalDbToMemory = true;

版本要求 >= 1.2.0

(6) 性能测试

单线程,双重for循环,查询65025个IP,花费1500毫秒(Memory)。

3. ASP.NET Core 支持

IPTools 提供了 HttpContext对象的扩展方法。

使用:

HttpContext.GetRemoteIpInfo();
HttpContext.GetRemoteIpInfo(headerKey); // 从请求头获取ip地址信息,如果你使用了nginx、haproxy等代理

4. 同时使用 IPTools.China 和 IPTools.International

IPTools.China 和 IPTools.International 都实现了IIpSearcherIpTool类在加载时会检测你所安装的程序包进行初始化,且仅仅初始化一次。IpTool具有三个静态只读属性,分别是 DefaultSearcherIpChinaSearcherIpAllSearcher

  • DefaultSearcherIpTool.Search()IpTool.SearchWithI18N() 将会使用的默认Ip搜索器。
  • IpChinaSearcher。对应 IPTools.China 实现的搜索器。
  • IpAllSearcher。对应 IPTools.International 实现的搜索器。

如果你只是安装了 IPTools.China 那么,DefaultSearcher 将会是 IpChinaSearcherIpAllSearcher将会为 null。

如果你只是安装了 IPTools.International 那么,DefaultSearcher 将会是 IpAllSearcherIpChinaSearcher将会为 null。

如果你同时安装了以上两个组件,那么默认情况下 DefaultSearcher 将会是 IpChinaSearcherIpChinaSearcherIpAllSearcher 都不会为null。

改变DefaultSearcher 所使用的默认 Searcher 请使用下面的代码,如果你同时安装了两个组件才会生效。

IpToolSettings.DefalutSearcherType = IpSearcherType.China;
IpToolSettings.DefalutSearcherType = IpSearcherType.International;

5. 开源地址

https://github.com/stulzq/IPTools

.NET Core 开源工具 IPTools - 快速查询 IP 地理位置、经纬度信息相关推荐

  1. 全国计算机系统导出名单,墨涩网 - 快速查询导出电脑常用信息——墨涩网

    我们的查询电脑硬件信息或者软件版本信息的时候,一般都是在电脑的"设备管理器"和电脑系统属性里面查看,或者直接用下载安装鲁大师查看,今天介绍一个利用bat文件快速查询导出电脑常用信息 ...

  2. 使用Python批量查询ip地址的信息

    使用Python批量查询ip地址的信息 import requests from openpyxl import load_workbook from bs4 import BeautifulSoup ...

  3. 使用百度地图Web服务API查询地点的经纬度信息

    使用百度地图Web服务API查询地点的经纬度信息 API地理编码服务 数据 结果 API地理编码服务 地理编码服务(又名Geocoder)是一类Web API接口服务: 地理编码服务提供将结构化地址数 ...

  4. 工具及方法 - 查询IP信息

    IP信息查询网站: Comprehensive IP address data, IP geolocation API and database - IPinfo.io 这个网站提供最稳定.准确和深入 ...

  5. oppo手机工程模式清除数据需要密码_「MIUI玩机技巧27」如何快速查询和清除电池信息...

    作为安卓手机的用户,不知道你现在的手机的电量使用如何?是不是感觉到手机电量掉的很快?现在智能手机耗电量确实很大,在正常时间的情况下,好像都是不到一天就没电了?好一点的情况一天一充,我基本上都是一天充电 ...

  6. 【实战篇】| 模拟 20 万数据快速查询 IP 归属地

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自一个不甘平凡的码农 这篇文章主要深入数据结构与算法在解决实际问题怎么运用和分析 ...

  7. 华为开源构建工具_5个开源工具可快速构建地图应用

    华为开源构建工具 近年来,地理信息系统(GIS)引起的所有关注都可能使您认为它们是新事物. 实际上,超过160年前,地理空间数据在确定1854年伦敦霍乱致命爆发的来源方面发挥了重要作用. 当地医生约翰 ...

  8. 任何快速查询IP归属地

    最近公司项目需要做一个IP归属地查询的功能,想着如果用现成的API就可以大大提高开发效率,所以在网上的API商店搜索了一番,发现了 APISpace,它里面的IP归属地API非常符合我的开发需求. I ...

  9. 如何快速查询ip地址?

    ​ 1.打开Excel软件 2.然后在任意单元格录入ip地址 3.接着鼠标点击[DIY工具箱] ​ 4.点击[更多],然后选择[查ip归属地] 5.接着我们点击[确定] 6.最后选择合适的保存位置即可 ...

最新文章

  1. 机器学习的12大经验总结
  2. java高效遍历匹配,使用cypher或遍历api仅匹配路径极端的单个节点
  3. vue不是内部或外部命令
  4. datatable 导入mysql 解决_将DataTable中的数据导入到数据库中
  5. java.net.UnknownHostException: dbmtimehadoop
  6. 重邮2021计算机复试,2021复试调剂信息七
  7. c语言小数加分,求救:c语言课程设计 员工工资管理程序 有加分的。谢谢
  8. 使用poi统计工作职责
  9. 为什么要使用工业以太网交换机?
  10. scrapy startproject【学习笔记02】
  11. element表格实现树形全选_很实用!word中全选的快捷键介绍及使用方法
  12. C++中枚举的用法(比较全面)(转)
  13. c/c++教程 - 1.6 程序流程结构 if switch do while for break continue goto ?:三目运算符
  14. JavaScript alert延迟弹出
  15. 擦地机器人毕业设计_救援机器人毕业设计
  16. tcp网络示例客户端端以及代码,演示
  17. matlab中单位格式,[转载]matlab中的数据显示格式-format
  18. C#把excel数据转换成DataTable
  19. python选取tensor某一维_超简单!pytorch入门教程(一):Tensor
  20. java.lang.UnsatisfiedLinkError: /usr/local/java/jdk1.8.0_91/jre/lib/amd64/libawt_xawt.so: libXtst.so

热门文章

  1. Python爬虫——你们要的王者荣耀高清图
  2. Python实现和弦查询器(钢琴)
  3. 嵌入式设备的JTAG,Angle,和ICE三种调试笔记
  4. Windows时钟同步(时间同步)问题
  5. 学习记录-- 用 Latex 修改文字/段落颜色 用于回复审稿意见。
  6. vue合并表格excel导出_Vue实现导出excel表格功能
  7. 职称论文发表的字数不够怎么办
  8. 计算机基础操作测试题,计算机基础操作练习题.pdf
  9. esp32-cam摄像头+远程遥控小车
  10. Android视频编码--H264编码