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,失败");
}
}
}