【发布时间】:2017-03-12 21:41:21
【问题描述】:
我正在使用这个 c# librabry 进行 nslookup 查找域的名称服务器。这是我的 c# 代码
public async System.Threading.Tasks.Task<List<NS>> RunCmd(params string[] domains)
{
List<NS> NSL = new List<NS>();
var lookup = new LookupClient();
lookup.EnableAuditTrail = true;
foreach (var item in domains)
{
var result = await lookup.QueryAsync(item, QueryType.NS);
// rootDomain = result.AllRecords.FirstOrDefault().DomainName.Value;
var nameServer = result.AuditTrail;
var record = Regex.Match(nameServer.ToString(), @"ns\d"+ "."+ item).Value;
NSL.Add(new NS { domainName=item,nameServers= record});
}
var workbook = new XLWorkbook();
workbook.AddWorksheet("sheetName");
var ws = workbook.Worksheet("sheetName");
int row = 1;
foreach (var item in NSL)
{
ws.Cell("A" + row.ToString()).Value = item.domainName.ToString();
ws.Cell("B" + row.ToString()).Value = item.nameServers.ToString();
row++;
}
string folderPath = "D:\\";
workbook.SaveAs(folderPath+"nameServer.xlsx");
return NSL;
}
所以我传递了一个域数组,我需要知道它们的名称服务器并将它们返回到一个列表中,还将它们写入我本地目录中的一个 excel 文件中。我无法从响应中获取名称服务器 (var nameServer)直接所以我使用正则表达式从字符串中拆分名称服务器。所以根据我当前的正则表达式,如果它们是 ns1 和 ns2,如果它们不是像 ns1262 或 ns2636 这样的任何东西,我就可以获得一个空字符串来自正则表达式。
这是我在变量 nameServer 中得到的两个不同的示例响应
; (2 server found)
;; Got answer:
;; ->>HEADER<<- opcode: Query, status: No Error, id: 29412
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
mobilecellvideo.com. IN NS
;; ANSWER SECTION:
mobilecellvideo.com. 66306 IN NS ns2.mobilecellvideo.com.
mobilecellvideo.com. 66306 IN NS ns1.mobilecellvideo.com.
;; Query time: 132 msec
;; SERVER: 106.51.113.3#53
;; WHEN: Mon, 13 Mar 2017 02:55:38 GMT
;; MSG SIZE rcvd: 73
对于下面的响应,当我尝试匹配上面的正则表达式时,我只得到一个空字符串
; (2 server found)
;; Got answer:
;; ->>HEADER<<- opcode: Query, status: No Error, id: 29414
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
networkwonder.com. IN NS
;; ANSWER SECTION:
networkwonder.com. 300 IN NS ns2626.ztomy.com.
networkwonder.com. 300 IN NS ns1626.ztomy.com.
;; Query time: 436 msec
;; SERVER: 106.51.113.3#53
;; WHEN: Mon, 13 Mar 2017 03:09:01 GMT
;; MSG SIZE rcvd: 83
任何帮助将不胜感激
提前致谢!
【问题讨论】:
标签: c# dns nameservers nslookup