'Author : Daniel, Master Sourcerer at Kitana's Castle 'Last change: March 11, 2004 'Email : sourcerer@kitana.org #DIM ALL $whoishost = "whois.arin.net" %whoisport = 43 $outputfile = "whois.txt" 'Reads a document from an open connection FUNCTION READTCP$(H&) LOCAL BUFFER$,DOC$ DOC$="" DO TCP RECV H&,1024,BUFFER$ DOC$=DOC$+BUFFER$ LOOP UNTIL BUFFER$="" READTCP$=DOC$ END FUNCTION 'Main program FUNCTION PBMAIN& LOCAL HTCP&,Q$,R$ LOCAL P&,I&,NR& ON ERROR GOTO TCPERR 'Input query string LINE INPUT"Enter the IP or net handle to query: ",Q$ Q$=TRIM$(Q$) IF Q$=""THEN EXIT FUNCTION 'Open connection to Whois server HTCP&=FREEFILE TCP OPEN PORT %whoisport AT $whoishost AS HTCP& IF ERR THEN PRINT "Error connecting to whois host" EXIT FUNCTION END IF 'Send query TCP SEND HTCP&,Q$+CHR$(13,10) 'Read server reply R$=READTCP$(HTCP&) 'Print document to screen P&=1 WHILE P&<=LEN(R$) I&=INSTR(P&,R$,ANY CHR$(13,10)) IF I&=0 THEN I&=LEN(R$)+1 IF I&>P& THEN PRINT MID$(R$,P&,I&-P&) P&=I&+1 WEND 'Close connection TCP CLOSE HTCP& 'Save document to file (using DOS breaks) REPLACE CHR$(13,10) WITH CHR$(10) IN R$ REPLACE CHR$(10) WITH CHR$(13,10) IN R$ NR&=FREEFILE OPEN $outputfile FOR OUTPUT AS NR& PRINT# NR&,R$; CLOSE NR& 'End program ENDPRG: WAITKEY$ EXIT FUNCTION TCPERR: PRINT"Error #";LTRIM$(STR$(ERR)) RESUME ENDPRG END FUNCTION