'===========================================================================
' Subject: WHOIS - DOMAIN LOOKUP UTILITY      Date: 05-24-99 (17:34)       
'  Author: Dave Navarro, Jr.                  Code: PBDLL                  
'  Origin: dave@powerbasic.com              Packet: PBDLL.ABC
'===========================================================================
'==============================================================================
'
'  PB WhoIs v1.0 - Domain Lookup Utility
'  Copyright (c) 1999 PowerBASIC, Inc.
'
'==============================================================================

#COMPILE EXE

'------------------------------------------------------------------------------

%IDOK     = 1
%IDCANCEL = 2

'------------------------------------------------------------------------------

CALLBACK FUNCTION GoButton() AS LONG

  LOCAL buffer AS STRING
  LOCAL serv   AS STRING

  MOUSEPTR 11

  CONTROL GET TEXT CBHNDL, 200 TO buffer
  buffer = TRIM$(buffer)

  COMBOBOX GET TEXT CBHNDL, 201 TO serv
  serv = EXTRACT$(LTRIM$(serv), ANY " (")

  TCP OPEN PORT 43 AT serv AS #1 TIMEOUT 90
  IF ERR THEN
    MsgBox "Error connecting to " & serv
  ELSE
    serv = ""
    TCP PRINT #1, buffer
    DO
      TCP RECV #1, 32767, buffer
      serv = serv + buffer
    LOOP WHILE LEN(buffer)
    serv = TRIM$(serv, $LF)
    TCP CLOSE #1
    REPLACE $LF WITH $CRLF IN serv
    CONTROL SET TEXT CBHNDL, 202, serv
    CONTROL SET FOCUS CBHNDL, 200
  END IF

  MOUSEPTR 0

END FUNCTION

CALLBACK FUNCTION ExitButton() AS LONG

  DIALOG END CBHNDL, 1

END FUNCTION

'------------------------------------------------------------------------------

FUNCTION PbMain() AS LONG

  LOCAL hDlg   AS LONG
  LOCAL x      AS LONG
  LOCAL buffer AS STRING

  DIM serv(1 to DATACOUNT) AS STRING

  FOR x = 1 TO DATACOUNT
    serv(x) = READ$(x)
  NEXT

  DIALOG NEW 0, "PB Whois v1.0 - Domain lookup utility from PowerBASIC", ,, 350, 250 TO hDlg

  CONTROL ADD LABEL, hDlg, -1, "Name to look up:", 6, 12, 52, 10, 2
  CONTROL ADD LABEL, hDlg, -1, "Server:", 6, 26, 52, 10, 2
  CONTROL ADD LABEL, hDlg, -1, "Result:", 6, 40, 52, 10, 2
  CONTROL ADD TEXTBOX, hDlg, 200, "", 60, 10, 134, 12
  CONTROL ADD COMBOBOX, hDlg, 201, serv(), 60, 24, 280, 60
  CONTROL ADD TEXTBOX, hDlg, 202, "", 60, 38, 280, 175, &H200844, &H200
  CONTROL ADD BUTTON, hDlg, %IDOK, "&Go", 250, 225, 40, 14, &H10001 CALL GoButton
  CONTROL ADD BUTTON, hDlg, %IDCANCEL, "E&xit", 300, 225, 40, 14 CALL ExitButton

  COMBOBOX SELECT hDlg, 201, 1

  DIALOG SHOW MODAL hDlg

  EXIT FUNCTION

  DATA "rs.internic.net (.com, .edu, .net, .org)"
  DATA "whois.nic.uk (.co.uk, .org.uk, .net.uk, .ltd.uk, .plc.uk)"
  DATA "whois.nic.gov (.gov)"
  DATA "whois.nic.mil (.mil)"

END FUNCTION
