Advertisement
rfmonk

forward_reverse.py

Jan 25th, 2014
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.24 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. # thx found py net prog
  4. # check host forw backw
  5.  
  6. import socket
  7. import sys
  8.  
  9. if len(sys.argv) != 2:
  10.     print >>sys.stderr, 'usage: forward_reverse.py <hostname>'
  11.     sys.exit(2)
  12. hostname = sys.argv[1]
  13.  
  14. try:
  15.     infolist = socket.getaddrinfo(
  16.         hostname, 0, 0, socket.SOCK_STREAM, 0,
  17.         socket.AI_ADDRCONFIG | socket.AI_V4MAPPED | socket.AI_CANONNAME,
  18.     )
  19.  
  20. except socket.gaierror, e:
  21.     print 'Forward name service failure:', e.args[1]
  22.     sys.exit(1)
  23.  
  24. info = infolist[0]
  25. canonical = info[3]
  26. socketname = info[4]
  27. ip = socketname[0]
  28.  
  29. if not canonical:
  30.     print 'WARNING! The IP address', ip, 'has no reverse name'
  31.     sys.exit(1)
  32.  
  33. print hostname, 'has IP address', ip
  34. print ip, 'has the canonical hostname', canonical
  35.  
  36. forward = hostname.lower().split('.')
  37. reverse = canonical.lower().split('.')
  38.  
  39. if forward == reverse:
  40.     print 'The names agree completely.'
  41.     sys.exit(0)
  42.  
  43. length = min(len(forward), len(reverse))
  44. if (forward[-length:] == reverse[-length:]
  45.     or (len(forward) == len(reverse)
  46.         and forward[-length + 1:] == reverse[-length + 1:]
  47.         and len(forward[-2]) > 2)):
  48.     print 'The forward and reverse names have a lot in common'
  49. else:
  50.     print 'WARNING! The reverse name belongs to a different organization'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement