⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 doc

📁 早期freebsd实现
💻
📖 第 1 页 / 共 3 页
字号:
   echo "WARN: Found $#sns unique SOA serial #'s for $dom" >> log.$dom   if ($wflag) echo "WARN: Found $#sns unique SOA serial #'s for $dom"   if ($ddflag) echo "DDBUG: 24"else if ($sns != "") then   if ($cnttwo > 1) then      echo "SOA serial #'s agree for $dom" >> log.$dom      if ($vflag) echo "SOA serial #'s agree for $dom"      set ii = $#aafile      @   ij = $ii - 1     if ($ddflag) echo "DDBUG: 25"      while ($ij)         diff $aafile[$ii] $aafile[$ij] >& /dev/null         if ($status) then            @ ffwarn++echo "WARN: SOA records differ for $dom from authoritative servers" >> log.$domif ($wflag) echo "WARN: SOA records differ for $dom from authoritative servers"            if ($ddflag) echo "DDBUG: 26"            break         endif         @ ii--         @ ij--      end  # while   endifelse   echo "SYSerr: No servers for $dom returned SOAs ..." >> log.$dom   echo "SYSerr: No servers for $dom returned SOAs ..."   if ($ddflag) echo "DDBUG: 27"   goto dig4err1endif#####XX# ####################################################### Query all authoritative nameservers returning SOA## for NS records of domain.set domnslists=""set cntthree=0foreach i ($aaserv)  dig @$i ns $dom +norec $RET +pfset=0xa7e4 | $tolower >& $dom.raw.$i  set stat = $status  if ($stat != 0) then     set estr = $error[$stat]     echo "DIGERR ($estr): dig @$i for NS of $dom failed" >> log.$dom     echo "DIGERR ($estr): dig @$i for NS of $dom failed"     if ($ddflag) echo "DDBUG: 28"     @ ffalltwo++     rm $dom.raw.$i     continue  endif  echo "## NS records for $dom domain from nameserver $i" >> logXX.$dom  echo "" >> logXX.$dom  cat  $dom.raw.$i >> logXX.$dom  echo "===================" >> logXX.$dom  echo "" >> logXX.$dom########################################################## Examine response: get nameserver list, check TTLs##  (glue or authoritative not used here)  awk -f ${auxd}doc3.awk $dom.raw.$i | sort -u > $dom.ns.$i  set stat=$status## fix for shells which return unsigned 8 bit exit codes  if ($stat > 127) then     @ stat = $stat - 256  endif  if ($stat < 0) then       set isaa = 1;       @ stat = $stat + 127;  else       set isaa = 0;  endif  @ glue = $stat % 16  @ ttls = $stat / 16  if ($ttls > 1) then     @ fferror++     echo "ERROR: multiple TTLs found for $dom NS records @$i" >> log.$dom     if ($eflag) echo "ERROR: multiple TTLs found for $dom NS records @$i"     if ($ddflag) echo "DDBUG: 29"  endif#####XX# ################################################# Look for conflicting sets of NS records.##  @ cntthree++  set another=1  foreach j ($domnslists)	diff -i $j $dom.ns.$i >& /dev/null        if ($status == 0) then	   set another=0           break        endif  end  if ($another) then     cat $dom.ns.$i >> $dom.ns.all     set domnslists=($domnslists $dom.ns.$i)  endifendsort -u $dom.ns.all > tmp.$$mv tmp.$$ $dom.ns.allset bothagree=""################################################################################################################## Do NS lists agree among authoritative servers??##if ($#domnslists > 1) then   @ fferror++   echo "ERROR: Found $#domnslists unique sets of NS records" >> log.$dom   echo "   === from authoritative domain ($dom) servers" >> log.$dom   if ($ddflag) echo "DDBUG: 30"   if ($eflag) then      echo "ERROR: Found $#domnslists unique sets of NS records"      echo "   === from authoritative domain ($dom) servers"   endifelse if ($domnslists != "") then  if ($cntthree > 1) then    echo "Authoritative domain ($dom) servers agree on NS for $dom" >> log.$dom    if ($vflag) echo "Authoritative domain ($dom) servers agree on NS for $dom"    if ($ddflag) echo "DDBUG: 31"   endif####XX# ########################################################### If authoritative servers on NS records##   recall which (if any) of parent servers agreed and##   check for agreement between parent and child servers.##   if ($pflag) then      if ($nslists == "") then         set pnslist=$nslistsaa[1]      else         set pnslist=$nslists      endif      diff -i $pnslist $dom.ns.all > /dev/null    if ($status == 0) set bothagree = "first parent ($dad) nameserver queried"      goto skip4   endif   if ($agree) then      diff -i $nslists $dom.ns.all > /dev/null      if ($status == 0) then         set bothagree="all parent ($dad) servers"         if ($ddflag) echo "DDBUG: 32"      endif   else if ($tmpcntone == 1) then         diff -i $nslistsaa $dom.ns.all > /dev/null         if ($status == 0) then            set bothagree="parent ($dad) servers also authoritative for $dom"            if ($ddflag) echo "DDBUG: 33"         else if ($tmpcnttwo == 1) then            diff -i $nslists $dom.ns.all > /dev/null            if ($status == 0) then              set bothagree="parent ($dad) servers not authoritative for $dom"              if ($ddflag) echo "DDBUG: 34"             endif         endif   else if ($tmpcnttwo == 1) then         diff -i $nslists $dom.ns.all > /dev/null         if ($status == 0) then            set bothagree="parent ($dad) servers not authoritative for $dom"            if ($ddflag) echo "DDBUG: 35"         endif   endifendif####XX# skip4:if ("$bothagree" != "") then   echo "NS list from $dom authoritative servers matches list from" >> log.$dom   echo "  ===  $bothagree" >> log.$dom   if ($vflag) then      echo "NS list from $dom authoritative servers matches list from"      echo "  === $bothagree"   endifelse   @ fferror++   echo "ERROR: NS list from $dom authoritative servers does not" >> log.$dom   echo "  === match NS list from parent ($dad) servers" >> log.$dom   if ($eflag) then      echo "ERROR: NS list from $dom authoritative servers does not"      echo "  === match NS list from parent ($dad) servers"   endif   if ($ddflag) echo "DDBUG: 36"   set aanslist = `cat $dom.ns.all`   echo "NS list summary for $dom from authoritative servers" >> log.$dom   if ($vflag) echo "NS list summary for $dom from authoritative servers"   if ($#aanslist > 3) then      echo "  == $aanslist[1-3]" >> log.$dom      if ($vflag) echo "  == $aanslist[1-3]"      if ($#aanslist > 6) then         echo "  == $aanslist[4-6]" >> log.$dom         echo "  == $aanslist[7-]" >> log.$dom         if ($vflag) echo "  == $aanslist[4-6]"         if ($vflag) echo "  == $aanslist[7-]"      else         echo "  == $aanslist[4-]" >> log.$dom         if ($vflag) echo "  == $aanslist[4-]"      endif   else      echo "  == $aanslist" >> log.$dom      if ($vflag) echo "  == $aanslist"   endifendif####XX# ###################################################### Check that all servers that claim to be authoritative## have NS record at other AUTH servers##set domnsall=`cat $dom.ns.all`foreach i ($aaserv)  set missing=1  foreach j ($domnsall)    if ($i == $j) then      set missing=0      break    endif   end  if ($missing) then     @ fferror++     echo -n "ERROR: " >> log.$dom     echo "$i claims to be authoritative, but does not appear in" >> log.$dom     echo "NS list from authoritative servers" >> log.$dom     if ($eflag) then        echo -n "ERROR: "        echo "$i claims to be authoritative, but does not appear in"        echo "NS list from authoritative servers"     endif     if ($ddflag) echo "DDBUG: 37"  endifend######################################################### Determine list of addresses of nameservers for domain## which are also in the domain (currently only one per internet## network is tested).#### Ask for in-addr.arpa. PTR to see if reverse mappings## are set up correctly.set netaddr = `cat $dom.raw.* | awk -f ${auxd}doc4.awk`echo "Checking $#netaddr potential addresses for hosts at $dom" >> log.$domif ($vflag) echo "Checking $#netaddr potential addresses for hosts at $dom"if ($#netaddr > 4) then   echo "  == $netaddr[1-4]" >> log.$dom   echo "  == $netaddr[5-]" >> log.$dom   if ($vflag) then      echo "  == $netaddr[1-4]"      echo "  == $netaddr[5-]"    endifelse    echo "  == $netaddr" >> log.$dom    if ($vflag) echo "  == $netaddr"endif####XX# echo "### Queries for nameserver address in-addr.arpa. records" >> logXX.$domecho "" >> logXX.$domforeach i ($netaddr)   dig +pfset=0x2738 -x $i >>& logXX.$dom   set stat = $status   if ($stat == 0) then      echo "in-addr PTR record found for $i" >> log.$dom      if ($vflag) echo "in-addr PTR record found for $i"   else if ($stat == 3) then      echo "ERROR: no in-addr PTR recorder found for $i" >> log.$dom      if ($eflag) echo "ERROR: no in-addr PTR recorder found for $i"      @ fferror++      if ($ddflag) echo "DDBUG: 38"   else      set estr = $error[$stat]      echo "DIGERR ($estr): dig for $i in-addr PTR failed" >> log.$dom      echo "DIGERR ($estr): dig for $i in-addr PTR failed"      @ ffalltwo++      if ($ddflag) echo "DDBUG: 39"   endifendgoto arounddig1err1:dig1err2:dig2err1:dig4err1:@ ffallone++set aborted=1####XX# around:(rm $dom.* &) >& /dev/nullset isok=1echo "Summary:" >> log.$domecho "Summary:"if ($aborted) then   echo "   YIKES: doc aborted while testing $dom  parent $dad" >> log.$dom   echo "   YIKES: doc aborted while testing $dom  parent $dad"   set isok=0endifif ($fferror) then   echo "   ERRORS found for $dom (count: $fferror)" >> log.$dom   echo "   ERRORS found for $dom (count: $fferror)"   set isok=0endifif ($ffwarn) then   echo "   WARNINGS issued for $dom (count: $ffwarn)" >> log.$dom   echo "   WARNINGS issued for $dom (count: $ffwarn)"   set isok=0endifif ($isok) then   echo "   No errors or warnings issued for $dom" >> log.$dom   echo "   No errors or warnings issued for $dom"endif@ ffall = $ffallone + $ffalltwoif ( $ffallone | $ffalltwo ) then   echo "   Incomplete test for $dom ($ffall)" >> log.$dom   echo "   Incomplete test for $dom ($ffall)"endifecho "Done testing $dom  `date`" >> log.$domecho "" >> log.$domecho "Done testing $dom  `date`"echo ""cat logXX.$dom >> log.$domrm logXX.$domexit 0show:echo "Usage:  doc [-e][-w][-v][-d] domain_name [parent_domain_name]"echo " Note:  You must have DiG Version-2.0 for this program to run."exit 9cleanup:(rm $dom.* &) >& /dev/nullif ( -e log.$dom ) then  if ( -e logXX.$dom ) then     cat logXX.$dom >> log.$dom     rm logXX.$dom  endif  echo "Doc interrupted - partial logfile: log.$dom exists."endif####XX#

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -