231211 发表于 2016-11-24 08:47:56

PowerShell 给现有DNS记录创建PTR反向查询

今天早上豆子无意中发现公司的DNS服务器上面只有正向的解析,而没有对应的PTR记录。换句话说,可以通过域名来解析IP地址,但是倒过来IP地址是找不着域名的。


1个小时写了个很简单的脚本,判断已有的记录是否存在对应的reverse zone 和PTR记录,如果没有的话,自动给我创建加上。

思路很简单,脚本也比较糙,没有任何容错处理和优化,不过实现功能就好。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
$ptrzones=Get-DnsServerzone -ComputerName syddc01 | Where-Object {$_.zonename -like "*.arpa"}
#获取所以的A记录
$machines=Get-DnsServerResourceRecord -ComputerName syddc01 -RRType A -ZoneName 'omnicom.com.au'| select @{n='IP';e={$_.recorddata.IPV4Address.IPAddressToString}}, hostname, timestamp, @{n='PTRZone';e={$temp=$_.recorddata.IPV4Address.IPAddressToString.split('.');$t=$temp+'.'+$temp+'.'+$temp+‘.in-addr.arpa’;$t}}

foreach($machine in $machines){

#判断是否存在PTR的reverse zone
write-host $machine.hostname
write-host $machine.PTRZone
$flag=0
foreach($p in $ptrzones){
    if($p.zonename -eq $machine.PTRZone){
      #write-host " Matched PTR Zone" -BackgroundColor Cyan
      $flag=1
      break
      }

}
#如果PTR Zone不存在,创建一个对应的
if($flag -eq 0){
    write-host " PTRZone is Missing,A new PTRZone will be created" -ForegroundColor Red
    $temp=$machine.IP.Split('.')
    $range=$temp+'.'+$temp+'.'+$temp+".0/24"
    #$range
    Add-DnsServerPrimaryZone -DynamicUpdate Secure -NetworkId $range -ReplicationScope Domain -ComputerName syddc01
}
else{

    #如果PTR zone存在,判断是否存在对应的PTR记录
    $hname=Get-DnsServerResourceRecord -ComputerName syddc01 -RRType Ptr -ZoneName $machine.PTRZone | select @{n='name';e={$_.recorddata.ptrdomainname}}
    #$hname
    $temp="*"+$machine.hostname+"*"
    if($hname -like $temp){

       Write-Host "Already exist" -ForegroundColor Cyan

    }
    else{
      #PTR Zone存在 但是PTR记录不存在
      Write-Host "Adding PTR record" -ForegroundColor Yellow
      Add-DnsServerResourceRecordPtr -ComputerName syddc01 -ZoneName $machine.PTRZone -Name $machine.IP.Split('.') -AllowUpdateAny -TimeToLive 01:00:00 -AgeRecord -PtrDomainName $machine.hostname
    }
    }


}





执行脚本



结果



VEP33 发表于 2020-1-16 11:06:52

666
页: [1]
查看完整版本: PowerShell 给现有DNS记录创建PTR反向查询