IPTools | 中文文档
Quickly query IP information, support domestic and foreign IP information query, support query latitude and longitude, and support geographical location to the city.
Quickly query China IP information, country, province, city and network operators. Non China IP can only query national information.
Install-Package IPTools.China
https://github.com/stulzq/IPTools/raw/master/db/ip2region.db
After the database file is downloaded, put it in your project root directory (same level as the *.csprj file), and set the copy to the output directory.
At the beginning of version 1.2.0, the database file was unembedded into the assembly, which is convenient for updating and reduces the size of the assembly.
IpTool.Search("your ip address");
eg.
var ipinfo = IpTool.Search("171.210.12.163");
Console.WriteLine(ipinfo.Country); // 中国
Console.WriteLine(ipinfo.Province); // 四川省
Console.WriteLine(ipinfo.City); // 成都市
Console.WriteLine(ipinfo.NetworkOperator);// 电信
Not support . So you can't use IpTool.SearchWithI18NAsync()
.
Single thread double for loop queries 65025 IP, takes 170 ms.
IpToolSettings.ChinaDbPath="";
Quickly query global IP information, support i18n, country, province, city, post code, longitude and latitude.
Install-Package IPTools.International
https://github.com/stulzq/IPTools/raw/master/db/GeoLite2-City.mmdb
After the database file is downloaded, put it in your project root directory (same level as the *.csprj file), and set the copy to the output directory.
At the beginning of version 1.2.0, the database file was unembedded into the assembly, which is convenient for updating and reduces the size of the assembly.
IpTool.Search("your ip address");
eg.
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("your ip address");
eg.
var ipinfo = IpTool.SearchWithI18N("171.210.12.163","en");//If language code is not set, Chinese will be used by default.
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
Default language is chinese(zh-CN), How to change?
IpToolSettings.DefaultLanguage = "en";// set default language is english.
With the following settings, will double the query speed, the principle is to fully load the database file into the memory, the price is that the memory will increase 60-70M, space for time, this should be noted.
IpToolSettings.LoadInternationalDbToMemory = true;
Version >= 1.2.0
Single thread double for loop queries 65025 IP, takes 1500 ms(Memory).
IpToolSettings.InternationalDbPath="";
IPTools provides an extension method for HttpContext
.
usage:
HttpContext.GetRemoteIpInfo();
HttpContext.GetRemoteIpInfo(headerKey); // Get ip from header if you use nginx, haproxy etc.
Both IPTools.China and IPTools.International implement IIpSearcher
. The IpTool
class will detect the package you installed during initialization and initialize it only once. IpTool
has three static read-only properties, namely DefaultSearcher
, IpChinaSearcher
, IpAllSearcher
.
DefaultSearcher
.IpTool.Search()
andIpTool.SearchWithI18N()
will use the default Ip searcher.IpChinaSearcher
. IPTools.China Implemented searcher.IpAllSearcher
. IPTools.International Implemented searcher.
If you just installed IPTools.China then DefaultSearcher
will be IpChinaSearcher
and IpAllSearcher
will be null.
If you just installed IPTools.International then DefaultSearcher
will be IpAllSearcher
and IpChinaSearcher
will be null.
If you have both components installed at the same time, by default DefaultSearcher
will be IpChinaSearcher
, IpChinaSearcher
and IpAllSearcher
will not be null.
To change the default Searcher used by DefaultSearcher
, please use the following code, if you have two components installed at the same time, it will take effect.
IpToolSettings.DefalutSearcherType = IpSearcherType.China;
IpToolSettings.DefalutSearcherType = IpSearcherType.International;
GeoIP2-dotnet by maxmind.