批量添加DNS的A记录和PTR记录
批量添加DNS的A記錄和PTR記錄
搞SQL Server集群難免要搞域控制器,搞域控制器就不得不提DNS服務器,但DNS不只是為域服務,還可以作為ESX服務器所需的DNS服務器來復用,于是涉及到如何批量添加DNS的記錄了(包括A記錄和PTR記錄)。
在Google上面搜索的話,估計最容易搜索到的是如何使用 dnscmd.exe 這個工具來添加A記錄,這個工具位于Windows 安裝光盤的 SUPPORT\TOOLS\SUPPORT.CAB 中,用WinRAR可以打開,只需要Copy 一個文件出來就可以用了,命令很簡單:
dnscmd [DNS] /RecordAdd [域] [主機名] A [IP] dnscmd . /RecordAdd myhome.com hostA A 172.16.2.1 dnscmd . /RecordAdd myhome.com hostB A 172.16.2.2 dnscmd . /RecordAdd myhome.com hostC A 172.16.2.3 dnscmd . /RecordAdd myhome.com hostD A 172.16.2.4到此為止,感覺上還是比較簡單的,找個“工具”(C#、Perl、JS)生成一下這些命令就可以了。
但是添加完A記錄后,PTR記錄如何添加呢,這個也可以dnscmd工具做,這里我就不寫了,本文重點不在這里。
有沒有一種解決方案可以做到:A記錄和PTR記錄一起添加呢,答案是肯定的。
以下是一段在Google中搜索到的腳本,用于同時添加A記錄和PTR記錄的工具,出處無從查起了。
:: addaptr.bat :: :: Purpose: Add an A and PTR record using dnscmd.exe :: :: Usage: addaptr dnsserver fqdn ipadd :: :: dnsserver DNS server's ip, hostname or "." if the :: DNS service is running on local machine :: fqdn FQDN of the host you want the records :: to be added for (hostname.mydomain.com) :: ipadd ip address of the host :: __________________________________________________________________ :: @Echo Off SetLocalSet dnsserver=%1 Set fqdn=%2 Set ipadd=%3If Not Defined ipadd (Echo Add an A and PTR record using dnscmd.exeEcho.Echo %~n0 dnsserver fqdn ipaddEcho.Echo dnsserver DNS server's ip address, hostname, or "." if the DNSEcho service is running on local machine.Echo fqdn FQDN of the host you want the records to be added forEcho ^(hostname.mydomain.com^)Echo ipadd ip address of the hostGoto End )For /F "Tokens=1,* Delims=." %%A In ("%fqdn%") Do (Set hostname=%%ASet fzone=%%B ) For /F "Tokens=1-4 Delims=." %%A In ("%ipadd%") Do (Set rzone=%%C.%%B.%%A.in-addr.arpaSet okt4=%%D ):: Exists reverse lookupzone? DnsCmd %dnsserver% /ZoneInfo %rzone% >%TEMP%.\%~n0.log 2>&1 || (Goto Err):: Add PTR record DnsCmd %dnsserver% /RecordAdd %rzone% %okt4% PTR %fqdn% >%TEMP%.\%~n0.log 2>&1 || (Goto Err):: Exists forward lookupzone? DnsCmd %dnsserver% /ZoneInfo %fzone% >%TEMP%.\%~n0.log 2>&1 || (Goto Err):: Add A record DnsCmd %dnsserver% /RecordAdd %fzone% %hostname% A %ipadd% >%TEMP%.\%~n0.log 2>&1 || (Goto Err)Echo Done. Goto End:Err Type %TEMP%.\%~n0.log Pause:End If Exist %TEMP%.\%~n0.log Del %TEMP%.\%~n0.log EndLocal將這段腳本另存為 addaptr.bat 和 dnscmd.exe 放在同一個目錄,這個命令的使用方法也很簡單:
addaptr.bat [DNS] [主機名+域名] [IP] addaptr.bat . Host096.myhome.com 172.16.2.96 addaptr.bat . Host097.myhome.com 172.16.2.97 addaptr.bat . Host098.myhome.com 172.16.2.98 addaptr.bat . Host099.myhome.com 172.16.2.99下一步就很簡單了,找個“工具”(C#、Perl、JS)生成一下腳本就行了,下面是我用于批量生成的一段Perl腳本,將整個C段加入DNS:
#! /usr/bin/perl$i=1; for($i=1 ; $i<= 9 ; $i++) {print "addaptr.bat . Host00$i.myhome.com 172.16.2.$i"."\n"; } for($i=10 ; $i<= 99; $i++) {print "addaptr.bat . Host0$i.myhome.com 172.16.2.$i"."\n"; } for($i=100 ; $i <= 254 ; $i++) {print "addaptr.bat . Host$i.myhome.com 172.16.2.$i"."\n";轉載于:https://blog.51cto.com/wangjx/635089
總結
以上是生活随笔為你收集整理的批量添加DNS的A记录和PTR记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: translate()方法
- 下一篇: word如何复制内容、移动内容