繁体   English   中英

如何使用PowerShell查询DNS信息?

[英]How to use PowerShell to lookup DNS information?

我想用 PowerShell 自动执行查询 DNS 条记录的过程;

由于我在 GFW 后面,我需要为每个网站提供数十个 IP 地址,因此某些地址未被阻止的几率更大。

我找到了一个网站: www.robtex.com满足我的需求,它返回大量 IP 地址,但是它的免费 API 是有限的: https://freeapi.robtex.com/pdns/forward/$webaddr ,并使用web浏览器中的网页有悖于自动化的目的;

我该如何解决?


是的,我被禁止提问,所以我现在正在编辑我所有的问题,如果您认为我有所改进,请不要犹豫,如果没有,请随时发表评论!

我已经解决了。

我 PowerShell 7,我的解决方案需要 HTML 解析器库 PowerHTML 才能工作;

  • 要安装它,请在 PowerShell 中键入以下内容:

     Install-Module -Name PowerHTML

它提供 ConvertFrom-Html cmdlet,其 output 是 HtmlAgilityPack.HtmlNode object。

  • 代码:

     $Website = $Args $IPv4 = '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' $IPv6 = '([0-9A-Fa-f]{1,4}\:)(([0-9A-Fa-f]{1,4})?\:){1,6}[0-9A-Fa-f]{1,4}' $html = ConvertFrom-Html -uri "https://www.robtex.com/dns-lookup/$Website" $IP=@() $html.SelectNodes('//table/tbody/tr/td/ul/li/a').InnerText | Where {$_ -match "$IPv4|$IPv6"} | %{if ($IP -notcontains $_) {$IP+=$_}} $html.SelectNodes('//table/tbody/tr/td/a').InnerText | Where {$_ -match "$IPv4|$IPv6"} | %{if ($IP -notcontains $_) {$IP+=$_}} $html.SelectNodes('//p/a').InnerText | Where {$_ -match "$IPv4|$IPv6"} | %{if ($IP -notcontains $_) {$IP+=$_}} $IP >"$PSScriptRoot\${Website}_IP.txt"

另存为DNSQuery.ps1 ,使用示例:

.\DNSQuery.ps1 "www.google.com"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM