范围内 IP 地址的 DNS 循环扫描

问题描述

我想从 IP 地址 192.168.1.1 到 192.168.1.100 扫描 dns。我的命令在下面用于 DNS 循环扫描,它将显示域名指针等。

下面是我的命令

for ip in $(seq 1 100); do host 192.168.1.$ip; done | column -t

我遇到的问题是将第一个八位字节“192”从 1 改为 100,而不是最后一个八位字节“1-100”。

有没有办法编辑我的命令来做到这一点?

解决方法

命令 host 192.168.1.x 正在尝试查找主机 PTRx.168.192.in-addr.arpa 记录(在您的情况下为 x = 1..100)并且它将失败并显示结果 {{1} } 对于每个 3(NXDOMAIN),除非您正在为区域 x 运行名称服务器。

仅当您为此域运行私有 DNS 服务器并且运行此脚本的计算机在 168.192.in-addr.arpa 文件的第一行中有此私有名称服务器时,您的脚本才会扫描您的网络。

,

执行此操作的 PowerShell 方法(如果 PowerShell 是您所追求的)是这样的...

本地主机

Get-NetIPAddress -AddressFamily IPv4 | 
ForEach-Object {Resolve-DnsName $PSitem.IPAddress}

或通过 ADDS

(Get-ADComputer -Identity '*').Name | 
ForEach {Resolve-DnsName -Name $PSItem}

查看帮助文件了解更多详情

# Get specifics for a module,cmdlet,or function
(Get-Command -Name Resolve-Dns).Parameters
(Get-Command -Name Resolve-Dns).Parameters.Keys
Get-help -Name Resolve-Dns -Examples
Get-help -Name Resolve-Dns -Full
Get-help -Name Resolve-Dns -Online

Find-Module -Name '*dns*' | 
Format-Table -AutoSize


Get-Command -Name '*dns*' | 
Format-Table -AutoSize