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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:

今天早上豆子无意中发现公司的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月前
|
存储 Cloud Native 关系型数据库
Ganos实时热力聚合查询能力解析与最佳实践
Ganos是由阿里云数据库产品事业部与飞天实验室共同研发的新一代云原生位置智能引擎,集成于PolarDB-PG、Lindorm、AnalyticDB-PG和RDS-PG等核心产品中。Ganos拥有十大核心引擎,涵盖几何、栅格、轨迹等多种数据处理能力,实现了多模多态数据的一体化存储、查询与分析。本文重点介绍了Ganos的热力瓦片(HMT)技术,通过实时热力聚合查询与动态输出热力瓦片,无需预处理即可实现大规模数据秒级聚合与渲染,适用于交通、城市管理、共享出行等多个领域。HMT相比传统网格聚合技术具有高效、易用的优势,并已在多个真实场景中验证其卓越性能。
55 0
|
2月前
|
域名解析 网络协议 安全
DNS查询工具简介
DNS查询工具简介
|
3月前
|
域名解析 网络协议 安全
DNS查询工具简介
DNS查询工具简介
|
2月前
|
SQL 数据可视化 BI
SQL语句及查询结果解析:技巧与方法
在数据库管理和数据分析中,SQL语句扮演着至关重要的角色
|
4月前
|
SQL 数据库
|
4月前
|
Prometheus 监控 Cloud Native
Prometheus 查询语言(PromQL):深入解析
【8月更文第29天】Prometheus 是一款开源的监控系统和时间序列数据库,广泛应用于各种系统的监控和告警。PromQL(Prometheus Query Language)是 Prometheus 用来查询和聚合时间序列数据的一种强大语言。本文将详细介绍 PromQL 的功能和语法,包括基本查询、向量操作、聚合函数等,并提供具体的代码示例。
448 2
|
4月前
|
SQL 关系型数据库 MySQL
|
4月前
|
前端开发 开发者
Vaadin Grid的秘密武器:打造超凡脱俗的数据展示体验!
【8月更文挑战第31天】赵萌是一位热爱UI设计的前端开发工程师。在公司内部项目中,她面临大量用户数据展示的挑战,并选择了功能强大的Vaadin Grid来解决。她在技术博客上分享了这一过程,介绍了Vaadin Grid的基本概念及其丰富的内置功能。通过自定义列和模板,赵萌展示了如何实现复杂的数据展示。
44 0
|
4月前
|
SQL 数据库 开发者
SQL中的子查询:嵌套查询的深度解析
【8月更文挑战第31天】
446 0
|
4月前
|
SQL 开发框架 .NET
深入解析Entity Framework Core中的自定义SQL查询与Raw SQL技巧:从基础到高级应用的全面指南,附带示例代码与最佳实践建议
【8月更文挑战第31天】本文详细介绍了如何在 Entity Framework Core (EF Core) 中使用自定义 SQL 查询与 Raw SQL。首先,通过创建基于 EF Core 的项目并配置数据库上下文,定义领域模型。然后,使用 `FromSqlRaw` 和 `FromSqlInterpolated` 方法执行自定义 SQL 查询。此外,还展示了如何使用 Raw SQL 进行数据更新和删除操作。最后,通过结合 LINQ 和 Raw SQL 构建动态 SQL 语句,处理复杂查询场景。本文提供了具体代码示例,帮助读者理解和应用这些技术,提升数据访问层的效率和灵活性。
215 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
    下一篇
    无影云桌面