IP2RegionPlus.cs 844 B

12345678910111213141516171819202122232425262728293031323334353637
  1. using dodohold.core;
  2. using IP2Region.Net.Abstractions;
  3. using IP2Region.Net.XDB;
  4. namespace molilian.core
  5. {
  6. public partial class IP2RegionPlus
  7. {
  8. static ISearcher _searcher;
  9. static object _locker = new object();
  10. public static string? Search(string ip)
  11. {
  12. try
  13. {
  14. if (_searcher == null)
  15. {
  16. lock (_locker)
  17. {
  18. string xdb = AppContext.BaseDirectory + "data/ip2region.xdb";
  19. _searcher = new Searcher(CachePolicy.Content, xdb);
  20. }
  21. }
  22. return _searcher.Search(ip);
  23. }
  24. catch (Exception)
  25. {
  26. }
  27. return null;
  28. }
  29. }
  30. }