summaryrefslogtreecommitdiffstats
path: root/Mac/Demo/example1/dnslookup-1.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Demo/example1/dnslookup-1.py')
-rw-r--r--Mac/Demo/example1/dnslookup-1.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/Mac/Demo/example1/dnslookup-1.py b/Mac/Demo/example1/dnslookup-1.py
new file mode 100644
index 0000000..a59fb8e
--- /dev/null
+++ b/Mac/Demo/example1/dnslookup-1.py
@@ -0,0 +1,61 @@
+"""Sample program performing domain name lookups and showing off EasyDialogs,
+Res and Dlg in the process"""
+
+import EasyDialogs
+import Res
+import Dlg
+import sys
+import socket
+import string
+#
+# 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"""
+ try:
+ Res.OpenResFile("dnslookup-1.rsrc")
+ except Res.Error:
+ EasyDialogs.Message("Cannot open dnslookup-1.rsrc")
+ sys.exit(1)
+ 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()
+