DNS circular verify script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting DNS circular verify script
# 1  
Old 04-30-2013
DNS circular verify script

I have modified a script to do a circular DNS look up.

The theory is this
for a given subnet build a range if IP's
do a reverse look up on those IP's
take the output of the reverse look up then and do a forward look up
If the returns match up give a good status
If not return a fail status.

It runs really nice except when it runs into multi-homed IP's.
I am now trying to script in to check if the reverse lookup returns more than one entry, and if so then do a look up on any returns.

Any ideas?

Code:
#!/bin/bash
# Update NETS as needed
#
NETS="00.000.000"
echo
echo "STATE   ADDRESS -------> NAME -------------------> ADDRESS"
echo '-------------------------------------------------------------------'
for NET in $NETS; do
  for n in $(seq 1 254); do
    A=${NET}.${n}                    # builds the range of the subnet
    HOST=$(dig -x $A +short)         # reverse lookup
    if test -n "$HOST"; then         # If string has nonzero length then continue

      for MULTI in `dig +short  -x $HOST`; do
      ADDR=$(dig $HOST +short)       # Now do forward lookup
 done
      if test "$A" = "$ADDR"; then   # if host = IP, then mark it as OK
        echo -e "ok\t$A -> $HOST -> $ADDR"
      elif test -n "$ADDR"; then
        echo -e "fail\t$A -> $HOST -> $ADDR"
      else
        echo -e "fail\t$A -> $HOST -> [unassigned]"
      fi
    fi
  done
done
echo DONE
exit 0

# 2  
Old 04-30-2013
You can change it like this:
Code:
# for safety turn off globbing (wild card matching in current directory)
set -f
...
    MHOST=$(dig -x "$A" +short)      # reverse lookup
    if test -n "$MHOST"; then        # If string has nonzero length then continue

      for HOST in $MHOST; do
            MADDR=$(dig "$HOST" +short)       # Now do forward lookup
            for ADDR in $MADDR; do
...

I also added another loop, for the opposite case: one host has multiple IP addresses.
For safety, variables should be quoted in command arguments.
But the for loop needs an unquoted variable, therefore the set -f at the beginning of the script.
A bit more safe and more elegant are while loops:
Code:
...
    dig -x "$A" +short |               # reverse lookup
    while read HOST; do
          dig "$HOST" +short |         # Now do forward lookup
          while read ADDR; do
...

This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Script that verify output after make

Hi I write below script to show if expected file exist in /etc/library/ , print success else failed. But it will print full path I just need to print module name in output. And if it possible show time that spent to compile each module. FYI 1: First run another script just go to the paths... (1 Reply)
Discussion started by: indeed_1
1 Replies

2. Shell Programming and Scripting

Shell script verify connection to Oracle if not successful

i have a script that connects to the oracle database and executes the query statements. it works fine and i would like to add some message to check if the connection to oracle is not successful. basically this is the code snippet: #!/bin/sh ... ... ... sqlplus -s username/password@dbName... (2 Replies)
Discussion started by: wtolentino
2 Replies

3. Shell Programming and Scripting

Perl script to verify that a value is present in an array (list)

I have 2 files , i need compare both files field by field, and in the fourth field some value will be interchaged and some value will be **. ex: file1 john|0.0|4|**:25;JP:50;UY:25 file2 john|0.0|4|JP:50;**:25;UY:25 (4 Replies)
Discussion started by: veeruasu
4 Replies

4. UNIX for Advanced & Expert Users

Script to verify veritas mirror

Hi Experts, I have lot of Solaris servers and in most of them, root disk is mirrored in rootdg. I just want to check all servers, if there is any server whose root disk is not mirrored. Either it may be with detached plexes or not mirrored at all. I can run a for loop for all servers. Can... (4 Replies)
Discussion started by: solaris_1977
4 Replies

5. UNIX for Advanced & Expert Users

Verify file was sftp'd via bash script

Hello Experts, I have a script that that transfers a file (via sftp) and it works fine but we ran into a snag where the target server asked for the ssh key and the script didn't know what to do. I want to add some logic to this script that at least sends an email that it didn't complete as... (4 Replies)
Discussion started by: Tiberius777
4 Replies

6. Shell Programming and Scripting

script to verify backup is succesfull or not

tail -30 /opt/oracle/rmanbkup/log/db_backup_JONDB.log input datafile fno=00005 name=+ORA_DATA/jondb/datafile/users.264.696728295 input datafile fno=00003 name=+ORA_DATA/jondb/datafile/sysaux.261.696728281 input datafile fno=00001 name=+ORA_DATA/jondb/datafile/system.259.696728257 input datafile... (6 Replies)
Discussion started by: arch12
6 Replies

7. UNIX for Dummies Questions & Answers

Verify a flat file with UNIX function or script.

I re-post my question to seek your help and critique. I was required to verify a very large and tab-delimited file, named 'MyFile'. 1. The each line in 'MyFile' has 7 columns, and that the values in the 5th column are integers. I need to use shell functions (and standard LINUX/UNIX filters) to... (1 Reply)
Discussion started by: duke0001
1 Replies

8. Shell Programming and Scripting

Help needed with script to verify the version of BIND

I have tried thought of using instfix -ivqc | grep BIND , but this did not return the result I was looking for; it seem to list out the the different patches that had been applied to BIND. I'm actually looking for overall version, like you'd get when checking the OS level for instance. (1 Reply)
Discussion started by: sport
1 Replies

9. Shell Programming and Scripting

Script to verify SSH is running

Writing a simple test script that looks for ssh, kills if its running and verifies if its still running. If it isn't, move on. My issue, its cause I don't know how, is to verify if ssh is running still. Also, is there a way have this do this on a remote server? I already have the ssh keys... (7 Replies)
Discussion started by: djinn
7 Replies

10. Shell Programming and Scripting

Circular reference

I might know the answer to this, but I just want to see if any of you know any work arounds before I go and re-write the whole thing. I have a script as follow: $ cat testing #! /usr/bin/ksh f () { echo "Type \"y\" \c" read value if ; then ... (1 Reply)
Discussion started by: fidodido
1 Replies
Login or Register to Ask a Question