如何使用PowerShell查询DNS信息?
How to use PowerShell to lookup DNS information?
我想使用 PowerShell 自动执行查询 DNS 记录的过程;
由于我是GFW的幕后黑手,所以每个网站都需要几十个IP地址,所以有些地址不被屏蔽的几率比较大。
我找到了一个网站:www.robtex.com that suites my needs, it returns a large number of IP addresses, however its free API is limited: https://freeapi.robtex.com/pdns/forward/$webaddr,在网络浏览器中使用该网页有悖于自动化的目的;
我该如何解决?
是的,我被禁止提问所以我现在正在编辑我所有的问题,如果你认为我有改进请不要犹豫,如果没有,请随时发表评论!
我已经解决了
我是 PowerShell 7,我的解决方案需要 HTML 解析器库 PowerHTML 才能工作;
要安装它,请在 PowerShell 中键入以下内容:
Install-Module -Name PowerHTML
它提供 ConvertFrom-Html cmdlet,其输出是 HtmlAgilityPack.HtmlNode 对象。
代码:
$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"
我想使用 PowerShell 自动执行查询 DNS 记录的过程;
由于我是GFW的幕后黑手,所以每个网站都需要几十个IP地址,所以有些地址不被屏蔽的几率比较大。
我找到了一个网站:www.robtex.com that suites my needs, it returns a large number of IP addresses, however its free API is limited: https://freeapi.robtex.com/pdns/forward/$webaddr,在网络浏览器中使用该网页有悖于自动化的目的;
我该如何解决?
是的,我被禁止提问所以我现在正在编辑我所有的问题,如果你认为我有改进请不要犹豫,如果没有,请随时发表评论!
我已经解决了
我是 PowerShell 7,我的解决方案需要 HTML 解析器库 PowerHTML 才能工作;
要安装它,请在 PowerShell 中键入以下内容:
Install-Module -Name PowerHTML
它提供 ConvertFrom-Html cmdlet,其输出是 HtmlAgilityPack.HtmlNode 对象。
代码:
$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"