using WingCloudServer.IpOfflineTools.Model; using WingCloudServer.IpOfflineTools.Service; namespace WingCloudServer.IpOfflineTools { class Program { static void Main(string[] args) { Console.WriteLine("******Ip离线库工具启动******"); Run(); Console.ReadLine(); } /// /// 执行数据并生成离线库 /// private static void Run() { //读取配置 var sourceFileDirect = ConfigurationHelper.GetParammeter("IPService", "IPSourceFilePath").Value; var timeStamp = CommonHelper.GetCurrentTimeStamp(); var destDirect = AppDomain.CurrentDomain.BaseDirectory + "\\IPFolder\\"; if (!Directory.Exists(destDirect)) { Directory.CreateDirectory(destDirect); } else { DirectoryInfo dir = new DirectoryInfo(destDirect); FileInfo[] files = dir.GetFiles("*", SearchOption.AllDirectories); if (files != null && files.Length >= 10) { dir.Delete(true); Directory.CreateDirectory(destDirect); } } var destTxtPath = destDirect + $"IP_Copy_{timeStamp}.txt"; File.Copy(sourceFileDirect, destTxtPath, true); IPServiceGuide ipService = new IPServiceGuide(); var sourceIpList = ipService.ReadFile(destTxtPath); if (sourceIpList != null && sourceIpList.Count > 0) { //获取国家信息 var countryList = ipService.GetCountryFromIpList(sourceIpList); if (countryList != null && countryList.Count > 0) { var resPath = ConfigurationHelper.GetParammeter("IPService", "IpFileOutputPath").Value; if (!string.IsNullOrEmpty(resPath)) { var fileName = ConfigurationHelper.GetParammeter("IPService", "OutputFileName").Value; var pCount = ConfigurationHelper.GetParammeter("IPService", "PCount").Value; var res = ipService.WriteFile(countryList, resPath, fileName, pCount); if (res) { Console.WriteLine($"系统于{ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }生成IP离线库成功,IP源文件:IP_Copy_{timeStamp}.txt"); } else { Console.WriteLine($"系统于{ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }生成IP离线库失败"); } return; } } Console.WriteLine($"系统于{ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }计算IP列表失败"); } Console.WriteLine($"系统{ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }读取IP源文件:IP_Copy_{timeStamp}.txt,失败"); } } }