'Author : Daniel, Master Sourcerer at Kitana's Castle 'Last change: March 15, 2004 'Email : sourcerer@kitana.org 'Retrieves all IP addresses of the local computer #DIM ALL #INCLUDE "WSOCK32.INC" 'Converts an IP address to a string FUNCTION IPTOSTR$(IP&) LOCAL I&,A$,X&,P& P&=IP& FOR I&=1 TO 4 X&=P& AND 255 P&=INT(P&/256) IF A$<>""THEN A$=A$+"." A$=A$+LTRIM$(STR$(X&)) NEXT I& IPTOSTR$=A$ END FUNCTION 'Main program FUNCTION PBMAIN& LOCAL H AS ASCIIZ*64,I&,P&,N&,AL AS ASCIIZ PTR LOCAL PE AS hostentStru PTR,E AS hostentStru LOCAL D AS WSAdata 'Get name of local computer HOST NAME TO H 'Initialize WSA CALL WSAStartup(257,D) PE=GetHostByName(H) 'get all IP addresses IF PE>0 THEN E=@PE PRINT"Name : ";E.@h_name P&=E.h_alias 'actually this is a pointer to a list of ASCIIZ strings AL=P& PRINT"Alias : ";@AL P&=E.h_list 'this is a pointer to a list of ip-address pointers DO I&=CVL(PEEK$(P&,4)) 'pointer to next ip address IF I&=0 THEN EXIT LOOP PRINT"IP Address : ";IPTOSTR$(CVL(PEEK$(I&,4))) P&=P&+4 LOOP END IF 'End WSA CALL WSACleanup WAITKEY$ END FUNCTION