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,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
网络协议 安全
DNS查询工具 - dig
【1月更文挑战第4天】
89 0
|
4月前
|
存储 关系型数据库 数据库
postgresql|数据库|提升查询性能的物化视图解析
postgresql|数据库|提升查询性能的物化视图解析
156 0
|
3月前
|
NoSQL 关系型数据库 MySQL
深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析
在 MongoDB 中,我们使用 find() 和 find_one() 方法来在集合中查找数据,就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样
65 1
|
3月前
|
网络协议
DNS查询工具 - nslookup
【1月更文挑战第5天】
142 1
|
9月前
|
JavaScript 前端开发 API
python对接API二次开发高级实战案例解析:百度地图Web服务API封装函数(行政区划区域检索、地理编码、国内天气查询、IP定位、坐标转换)
python对接API二次开发高级实战案例解析:百度地图Web服务API封装函数(行政区划区域检索、地理编码、国内天气查询、IP定位、坐标转换)
230 0
|
26天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
3月前
|
域名解析 缓存 网络协议
DNS 查询结果逐行解释
DNS的主要作用是将人类可读的域名映射为计算机可理解的IP地址,实现互联网上的可靠和方便的资源定位。
46 0
|
3月前
|
Cloud Native 前端开发 关系型数据库
Ganos实时热力聚合查询能力解析与最佳实践
本文主要介绍Ganos实时热力聚合查询并动态输出热力瓦片能力,依托阿里云PolarDB PostgreSQL产品、ADB PostgreSQL和RDS PostgreSQL 三款数据库建设输出。
|
4月前
|
SQL 关系型数据库 分布式数据库
深度解析PolarDB数据库并行查询技术
深度解析PolarDB数据库并行查询技术:加速SQL执行的关键问题和核心技术 随着数据规模的不断扩大,用户SQL的执行时间越来越长,这不仅对数据库的优化能力提出更高的要求,并且对数据库的执行模式也提出了新的挑战。为了解决这个问题,许多数据库系统,包括Oracle、SQL Server等,都开始提供并行查询引擎的支持,以充分利用系统资源,达到加速SQL执行的效果。本文将深入探讨基于代价进行并行优化、并行执行的云数据库的并行查询引擎的关键问题和核心技术。
123 2

相关产品

  • 云解析DNS
  • 推荐镜像

    更多