symbian-qemu-0.9.1-12/python-2.6.1/Mac/Demo/example1/dnslookup-1.py
author Gareth Stockwell <gareth.stockwell@accenture.com>
Fri, 24 Sep 2010 12:07:03 +0100
branchgraphics-phase-3
changeset 115 7fc47a6656f3
parent 1 2fb8b9db1c86
permissions -rw-r--r--
Removed syborg-graphicswrapper model library This has been moved to the adapt/graphics.simulator package - see changeset 563aa0c4cea3.

"""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()