NSLookup在C#中使用第三方库

梅尔文

我正在使用这个c# 库用于 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

任何帮助将非常感激

提前致谢 !

迈克尔

绝对没有必要再次尝试result.AuditTrail通过正则表达式属性中提取信息AuditTrail仅用于记录信息!您想要的所有数据都已在结果中,并且 DnsClient.NET 库为您提供所有内容的强类型结果。

这就是您返回的所有结果。答案、权限等列表...

DnsQueryResponse 是您应该使用的实际 DNS 结果。根据您提出的问题,相关数据可能位于 Answers、Additions 或 Authorities 中。

你的错误是(查看注释代码),你试图检查DomainName所有记录上的字符串以找到你的 NS 名称,但这不是找到它们的地方 ;)DomainName用于任何事情,主要是查询。每条记录都有自己的字段来存储记录的特定数据,NsRecord也是如此

所以,下面的例子给你 ns 记录和你想要的 ns 名称

var lookup = new LookupClient();
var result = await lookup.QueryAsync("google.com", QueryType.NS);

foreach(var nsRecord in result.Answers.NsRecords())
{
    Console.WriteLine(nsRecord.NSDName);
}

这将打印类似

ns4.google.com. ns1.google.com. ns3.google.com. ns2.google.com.

希望有帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Jint中使用第三方js库

来自分类Dev

在NetBeans中使用第三方库

来自分类Dev

在Eclipse for Android中使用第三方库

来自分类Dev

在Jint中使用第三方js库

来自分类Dev

第三方库的使用

来自分类Dev

在Windows桌面应用程序中使用第三方C ++库

来自分类Dev

如何在C#中使用第三方https wsdl Web服务

来自分类Dev

使用第三方库(sbpl)

来自分类Dev

使用GIT进行协作-第三方库

来自分类Dev

使用第三方库进行Python部署

来自分类Dev

使用第三方库的OpenCV问题

来自分类Dev

使用第三方库进行编译

来自分类Dev

在angular指令中使用第三方lib

来自分类Dev

Singleton与第三方库

来自分类Dev

在第三方非AMD库中使用AMD定义的模块

来自分类Dev

如何在taskKey中使用第三方库?

来自分类Dev

在Eclipse RCP Tycho应用程序中使用第三方库

来自分类Dev

如何在ionic 2中使用第三方javascript库(pixijs)?

来自分类Dev

春季在第三方库中使用多种实现:坚持寻找干净的方法

来自分类Dev

在风暴拓扑中使用第三方库时出现java.lang.UnsatisfiedLinkError

来自分类Dev

在没有第三方库的PHP中使用Twitter OAuth 1.1

来自分类Dev

在Angular 2中使用第三方库(parse.com)

来自分类Dev

在py2exe单个EXE文件中使用第三方库

来自分类Dev

无法在PyCharm中使用下载的第三方库

来自分类Dev

如何在Stencil.js中使用外部第三方库

来自分类Dev

如何在Python中使用第三方库?

来自分类Dev

在解析中使用第三方库进行云代码处理时出现ReferenceError

来自分类Dev

在软件和Web方法中使用第三方库会导致InvocationTargetException

来自分类Dev

如何在AzureML Studio中使用R脚本导入第三方库“ causalImpact”?

Related 相关文章

热门标签

归档