[英]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.