#! /usr/bin/python

#################################################
#  DNSLookup v.0.1a
#
#  This software is open source and may
#  be used, modified, and redistributed 
#  free of charge...
#  for any non-commercial, non-profit
#  purposes provided these credits are
#  left intact, unedited.  This software 
#  comes with NO warrantee whatsoever, 
#  and the author, cylikon@hotmail.com, 
#  takes NO responsibility for any damages or
#  problems resulting from the use of this 
#  software. 
#
#  This is a Python script and requires you 
#  to have Python 2.2 or better installed.
#
#  Copyright April 2002 (cylikon@hotmail.com)
#  All rights reserved.
#################################################

from Tkinter import *
import os
from ScrolledText import *
import sys

global queryvar
queryvar = None
global sc
sc = None

def showGUI(query=None):
  root=Tk()
  root.title("Phrozen's IP Lookup")
  global queryvar
  queryvar = StringVar(root)
  global sc
  sc = None
  color1="#E1ECFF"
  top=Frame(root)
  bot=Frame(root)
  fr1=Frame(top)
  fr2=Frame(top)
  sc=ScrolledText(bot)
  butt=Button(fr2,text="Lookup",command=showIP)
  lab=Label(fr1,text="Entry host name or IP address:")
  q=Entry(fr1)
  q["textvariable"]=queryvar
  sc.pack(expand=1,fill=BOTH)
  sc["height"]=5
  sc["width"]=25
  butt.pack(expand=1,fill=BOTH)
  lab.pack(side=TOP,fill=BOTH,expand=1)
  q.pack(side=BOTTOM,fill=BOTH,expand=1)
  fr1.pack(side=LEFT,expand=1,fill=BOTH)
  fr2.pack(side=RIGHT,expand=1,fill=BOTH)
  top.pack(side=TOP,expand=1,fill=BOTH)
  bot.pack(side=BOTTOM,expand=1,fill=BOTH)
  root["bg"]=color1
  fr1["bg"]=color1
  fr2["bg"]=color1
  top["bg"]=color1
  bot["bg"]=color1
  butt["bg"]="#CED7E9"
  lab["bg"]=color1
  q["bg"]="#FFFFFF"
  sc["bg"]=color1


  if query:
    q.insert(0,str(query).strip())
    showIP()
  root.mainloop()

def clearArea():
  global sc
  try:
    sc.delete(1.0,END)   
    sc.delete(1.0,END)   
  except:
    pass

def showIP(argy=None):
  clearArea()
  global queryvar
  global sc
  f=None
  try:
    f=os.popen("resolveip "+str(queryvar.get()).strip())
    s=f.readline().strip()
    if s=="":
      s="resolveip returned no information!"

    ss=s
    if s.find(" is ") > 0:
      ss=s[s.find(" is ")+4:len(s)].strip()
      if ss.find(",") > 0:
        l=ss.split(",")
        ss=""
        for y in l:
          ss=ss+str(y).strip()+"\n"
    sc.insert(1.0,ss)
    f.close()
  except:
    try:
      f.close()
    except:
      pass


if __name__ == "__main__":
  if len(sys.argv) > 1:
    showGUI(str(sys.argv[1]).strip())
  else:
    showGUI()