📅  最后修改于: 2023-12-03 14:57:47.198000             🧑  作者: Mango
资产查找器是一款基于C#编程语言开发的工具,旨在帮助用户快速查找目标系统中的所有资产信息,并将结果导出为Excel文件。本程序支持对多种资产类型进行查找,包括但不限于IP地址、MAC地址、域名、端口等。
本程序可以直接下载源代码进行编译,也可以直接下载可执行文件进行使用。
使用本程序前,需要先进行参数配置。用户可以通过编辑app.config
文件进行配置。
<configuration>
<appSettings>
<!-- 资产IP地址的文件路径 -->
<add key="ipFilePath" value="D:\ip.txt"/>
<!-- 资产MAC地址的文件路径 -->
<add key="macFilePath" value="D:\mac.txt"/>
<!-- 资产域名的文件路径 -->
<add key="domainFilePath" value="D:\domain.txt"/>
<!-- 资产端口的文件路径 -->
<add key="portFilePath" value="D:\port.txt"/>
<!-- 导出的Excel文件名 -->
<add key="exportFileName" value="Result.xlsx"/>
<!-- 导出的Excel文件保存路径 -->
<add key="exportFilePath" value="D:\"/>
</appSettings>
</configuration>
上述参数含义如下:
ipFilePath
:资产IP地址的文件路径macFilePath
:资产MAC地址的文件路径domainFilePath
:资产域名的文件路径portFilePath
:资产端口的文件路径exportFileName
:导出的Excel文件名exportFilePath
:导出的Excel文件保存路径需要注意的是,本程序要求资产信息必须以纯文本形式保存,每行一个,文件编码为UTF-8。
在参数配置完成后,用户可以直接启动程序,进入主界面。用户可以根据需求选择查找资产类型并输入要查找的内容。
下图为程序主界面:
查找完成后,用户可以将结果导出为Excel文件。点击“导出结果”按钮即可生成结果Excel文件。
下图为生成结果Excel文件后的部分内容:
以下是本程序主要代码片段:
// 定义资产信息类
public class AssetInfo
{
public string IP { get; set; }
public string MAC { get; set; }
public string Domain { get; set; }
public int Port { get; set; }
}
// 定义读取文件函数
private static List<string> ReadFile(string filePath)
{
List<string> lineList = new List<string>();
try
{
StreamReader sr = new StreamReader(filePath, Encoding.Default);
string line;
while ((line = sr.ReadLine()) != null)
{
lineList.Add(line.Trim());
}
sr.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return lineList;
}
// 定义导出数据函数
private static void ExportData(List<AssetInfo> assetList)
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
ExcelPackage pck = new ExcelPackage();
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Sheet1");
// 设置表头
ws.Cells[1, 1].Value = "IP地址";
ws.Cells[1, 2].Value = "MAC地址";
ws.Cells[1, 3].Value = "域名";
ws.Cells[1, 4].Value = "端口";
// 填充资产信息
for (int i = 0; i < assetList.Count; i++)
{
ws.Cells[i + 2, 1].Value = assetList[i].IP;
ws.Cells[i + 2, 2].Value = assetList[i].MAC;
ws.Cells[i + 2, 3].Value = assetList[i].Domain;
ws.Cells[i + 2, 4].Value = assetList[i].Port;
}
// 格式化Excel表格
ws.Cells[1, 1, 1, 4].Style.Font.Bold = true;
ws.Cells[1, 1, assetList.Count + 1, 4].AutoFitColumns();
// 保存文件
string fileName = ConfigurationManager.AppSettings["exportFileName"];
string filePath = ConfigurationManager.AppSettings["exportFilePath"] + fileName;
FileInfo fileInfo = new FileInfo(filePath);
if (fileInfo.Exists)
{
fileInfo.Delete();
}
pck.SaveAs(fileInfo);
MessageBox.Show("导出完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
以上代码片段包括了定义资产信息类、读取文件函数以及导出数据函数。读取函数使用StreamReader
类实现,导出函数使用ExcelPackage
库实现。