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 [2]+ '.' + $temp [1]+ '.' + $temp [0]+‘. 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 [0]+ '.' + $temp [1]+ '.' + $temp [2]+ ".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( '.' )[3] -AllowUpdateAny -TimeToLive 01:00:00 -AgeRecord -PtrDomainName  $machine .hostname 
     }
     }
   
   
   }

  

 执行脚本

    

wKiom1g1GgPRRmf1AACazFbSvhY540.png


结果


wKiom1g1GgSCwHkNAABsVrgiP64146.png






本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1875747,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值