首页 php教程 PHP开发 PowerShell 给现有DNS记录创建PTR反向查询

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

Nov 23, 2016 pm 05:25 PM
powershell

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

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

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

$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 
    }
    }
   
   
  }
登录后复制

执行脚本

wKioL1g1FQKRNt6DAAAEXizhf1w010.png

结果

wKioL1g1FQKRNt6DAAAEXizhf1w010.png

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

无法删除在系统中打开的 ISO 文件:如何修复 无法删除在系统中打开的 ISO 文件:如何修复 Apr 16, 2023 pm 02:25 PM

无法删除在系统中打开的 ISO 文件:如何修复

如何在 Windows 11 上以管理员身份打开 PowerShell 如何在 Windows 11 上以管理员身份打开 PowerShell May 10, 2023 pm 06:40 PM

如何在 Windows 11 上以管理员身份打开 PowerShell

修复:Windows 11/10 中无法打开 PowerShell 或 PowerShell 已停止工作问题 修复:Windows 11/10 中无法打开 PowerShell 或 PowerShell 已停止工作问题 Apr 24, 2023 pm 07:49 PM

修复:Windows 11/10 中无法打开 PowerShell 或 PowerShell 已停止工作问题

PowerShell渗透测试利器Nishang怎么用 PowerShell渗透测试利器Nishang怎么用 May 13, 2023 am 10:58 AM

PowerShell渗透测试利器Nishang怎么用

PowerShell 部署失败并出现 HRESULT 0x80073D02 问题修复 PowerShell 部署失败并出现 HRESULT 0x80073D02 问题修复 May 10, 2023 am 11:02 AM

PowerShell 部署失败并出现 HRESULT 0x80073D02 问题修复

如何在 Windows 11 上安装和使用 Git 如何在 Windows 11 上安装和使用 Git May 28, 2023 am 08:08 AM

如何在 Windows 11 上安装和使用 Git

如何在 Windows 11 上启用管理员帐户 如何在 Windows 11 上启用管理员帐户 Apr 15, 2023 pm 07:46 PM

如何在 Windows 11 上启用管理员帐户

powershell和cmd的区别是什么 powershell和cmd的区别是什么 Jan 11, 2023 pm 02:23 PM

powershell和cmd的区别是什么

See all articles