Program.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using WingCloudServer.IpOfflineTools.Model;
  2. using WingCloudServer.IpOfflineTools.Service;
  3. namespace WingCloudServer.IpOfflineTools
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. Console.WriteLine("******Ip离线库工具启动******");
  10. Run();
  11. Console.ReadLine();
  12. }
  13. /// <summary>
  14. /// 执行数据并生成离线库
  15. /// </summary>
  16. private static void Run()
  17. {
  18. //读取配置
  19. var sourceFileDirect = ConfigurationHelper.GetParammeter<StringParameter>("IPService", "IPSourceFilePath").Value;
  20. var timeStamp = CommonHelper.GetCurrentTimeStamp();
  21. var destDirect = AppDomain.CurrentDomain.BaseDirectory + "\\IPFolder\\";
  22. if (!Directory.Exists(destDirect))
  23. {
  24. Directory.CreateDirectory(destDirect);
  25. }
  26. else
  27. {
  28. DirectoryInfo dir = new DirectoryInfo(destDirect);
  29. FileInfo[] files = dir.GetFiles("*", SearchOption.AllDirectories);
  30. if (files != null && files.Length >= 10)
  31. {
  32. dir.Delete(true);
  33. Directory.CreateDirectory(destDirect);
  34. }
  35. }
  36. var destTxtPath = destDirect + $"IP_Copy_{timeStamp}.txt";
  37. File.Copy(sourceFileDirect, destTxtPath, true);
  38. IPServiceGuide ipService = new IPServiceGuide();
  39. var sourceIpList = ipService.ReadFile(destTxtPath);
  40. if (sourceIpList != null && sourceIpList.Count > 0)
  41. {
  42. //获取国家信息
  43. var countryList = ipService.GetCountryFromIpList(sourceIpList);
  44. if (countryList != null && countryList.Count > 0)
  45. {
  46. var resPath = ConfigurationHelper.GetParammeter<StringParameter>("IPService", "IpFileOutputPath").Value;
  47. if (!string.IsNullOrEmpty(resPath))
  48. {
  49. var fileName = ConfigurationHelper.GetParammeter<StringParameter>("IPService", "OutputFileName").Value;
  50. var pCount = ConfigurationHelper.GetParammeter<IntParameter>("IPService", "PCount").Value;
  51. var res = ipService.WriteFile(countryList, resPath, fileName, pCount);
  52. if (res)
  53. {
  54. Console.WriteLine($"系统于{ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }生成IP离线库成功,IP源文件:IP_Copy_{timeStamp}.txt");
  55. }
  56. else
  57. {
  58. Console.WriteLine($"系统于{ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }生成IP离线库失败");
  59. }
  60. return;
  61. }
  62. }
  63. Console.WriteLine($"系统于{ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }计算IP列表失败");
  64. }
  65. Console.WriteLine($"系统{ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }读取IP源文件:IP_Copy_{timeStamp}.txt,失败");
  66. }
  67. }
  68. }