_make_boundary(): Fix for SF bug #745478, broken boundary calculation
[python/dscho.git] / Mac / Demo / example1 / dnslookup-1.py
blob2aa7c88c4ffb66fa5ba2d778dcb78d03ca7ffa2b
1 """Sample program performing domain name lookups and showing off EasyDialogs,
2 Res and Dlg in the process"""
4 import EasyDialogs
5 from Carbon import Res
6 from Carbon import Dlg
7 import sys
8 import socket
9 import string
10 import macresource
12 # Definitions for our resources
13 ID_MAIN=512
15 ITEM_LOOKUP_ENTRY=1
16 ITEM_RESULT=2
17 ITEM_LOOKUP_BUTTON=3
18 ITEM_QUIT_BUTTON=4
20 def main():
21 """Main routine: open resource file, call dialog handler"""
22 macresource.need("DLOG", ID_MAIN, "dnslookup-1.rsrc")
23 do_dialog()
25 def do_dialog():
26 """Post dialog and handle user interaction until quit"""
27 my_dlg = Dlg.GetNewDialog(ID_MAIN, -1)
28 while 1:
29 n = Dlg.ModalDialog(None)
30 if n == ITEM_LOOKUP_BUTTON:
31 tp, h, rect = my_dlg.GetDialogItem(ITEM_LOOKUP_ENTRY)
32 txt = Dlg.GetDialogItemText(h)
34 tp, h, rect = my_dlg.GetDialogItem(ITEM_RESULT)
35 Dlg.SetDialogItemText(h, dnslookup(txt))
36 elif n == ITEM_QUIT_BUTTON:
37 break
39 def dnslookup(str):
40 """ Perform DNS lookup on str. If first character of digit is numeric,
41 assume that str contains an IP address. Otherwise, assume that str
42 contains a hostname."""
43 if str == '': str = ' '
44 if str[0] in string.digits:
45 try:
46 value = socket.gethostbyaddr(str)[0]
47 except:
48 value = 'Lookup failed'
49 else:
50 try:
51 value = socket.gethostbyname(str)
52 except:
53 value = 'Lookup failed'
54 return value
56 main()