/Mac/Demo/example1/dnslookup-1.py
http://unladen-swallow.googlecode.com/ · Python · 55 lines · 48 code · 3 blank · 4 comment · 1 complexity · 13c3cda960b60b3111770a75c7bb80f6 MD5 · raw file
- """Sample program performing domain name lookups and showing off EasyDialogs,
- Res and Dlg in the process"""
- import EasyDialogs
- from Carbon import Res
- from Carbon import Dlg
- import socket
- import string
- import macresource
- #
- # Definitions for our resources
- ID_MAIN=512
- ITEM_LOOKUP_ENTRY=1
- ITEM_RESULT=2
- ITEM_LOOKUP_BUTTON=3
- ITEM_QUIT_BUTTON=4
- def main():
- """Main routine: open resource file, call dialog handler"""
- macresource.need("DLOG", ID_MAIN, "dnslookup-1.rsrc")
- do_dialog()
- def do_dialog():
- """Post dialog and handle user interaction until quit"""
- my_dlg = Dlg.GetNewDialog(ID_MAIN, -1)
- while 1:
- n = Dlg.ModalDialog(None)
- if n == ITEM_LOOKUP_BUTTON:
- tp, h, rect = my_dlg.GetDialogItem(ITEM_LOOKUP_ENTRY)
- txt = Dlg.GetDialogItemText(h)
- tp, h, rect = my_dlg.GetDialogItem(ITEM_RESULT)
- Dlg.SetDialogItemText(h, dnslookup(txt))
- elif n == ITEM_QUIT_BUTTON:
- break
- def dnslookup(str):
- """ Perform DNS lookup on str. If first character of digit is numeric,
- assume that str contains an IP address. Otherwise, assume that str
- contains a hostname."""
- if str == '': str = ' '
- if str[0] in string.digits:
- try:
- value = socket.gethostbyaddr(str)[0]
- except:
- value = 'Lookup failed'
- else:
- try:
- value = socket.gethostbyname(str)
- except:
- value = 'Lookup failed'
- return value
- main()