#! /usr/bin/env python import re import sys import getopt import socket ipre=re.compile('(?:\d{1,3}\.){3}\d{1,3}') # defaults options = {'head' : '0', 'dns' : False} optlist, args = getopt.getopt(sys.argv[1:], 'n:d', ['head=','dns']) #parse options. for o, a in optlist: if (o == '-d' or o == '--dns'): options['dns'] = True if (o=='-n' or 0=='--head'): options['head']=a else: for option in options.keys(): execcode = "if (o == '-%s' or o == '--%s'): options['%s'] = a" % (option[0], option, option) exec execcode line = sys.stdin.read() ipsinline=ipre.findall(line) outlines=0 for ip in ipsinline: #ip=re.sub('\.0{1,2}','.',ip) #un pad any padded zeros if options['dns']: hostname=socket.getfqdn(ip) print ip + " " + hostname else: print ip outlines+=1 if int(options['head'])>0 : if outlines >= int(options['head']): sys.exit()