//------------------------------------------------------------------------------ // Copyright (c) David Welch, 1996 //------------------------------------------------------------------------------ #include #include "winsock.h" #include #include BOOL CALLBACK _export WndProc ( HWND, UINT, WPARAM, LPARAM ); char TitleString[]="Searching..."; FILE *fp; FILE *out; WORD ra; WORD rb; char gstring[128]; char newline[128]; char name[128]; char address[128]; DWORD addr; BOOL cancel; WSADATA wsad; SOCKET sock; SOCKADDR_IN namesock; HWND mainhwnd; char command[40]; //------------------------------------------------------------------------------ int PASCAL WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR cmdline, int nCmdShow) { if(cmdline[0]==0) { MessageBox(NULL,"Need a command line",TitleString,MB_OK); return(FALSE); } lstrcpy(command,cmdline); if(WSAStartup(0x0101,&wsad)) { MessageBox(NULL,"WSAStartup() failed",TitleString,MB_OK); return(NULL); } if(DialogBox(hInstance,"MainDialog",0,WndProc)==-1) { MessageBox(NULL,"Could not create main window",TitleString, MB_OK); } WSACleanup(); return(TRUE); } //------------------------------------------------------------------------------ void addstring ( char *s ) { LRESULT lresult; while(1) { lresult=SendDlgItemMessage(mainhwnd,100,LB_GETCOUNT,0,0); if(lresult==LB_ERR) break; if(lresult<50) break; lresult=SendDlgItemMessage(mainhwnd,100,LB_DELETESTRING,0,0); if(lresult==LB_ERR) break; } lresult=SendDlgItemMessage(mainhwnd,100,LB_ADDSTRING,0,(LPARAM)s); if(lresult==LB_ERR) return; lresult=SendDlgItemMessage(mainhwnd,100,LB_GETCOUNT,0,0L); if(lresult==LB_ERR) return; SendDlgItemMessage(mainhwnd,100,LB_SETCURSEL,lresult-1,0L); } //------------------------------------------------------------------------------ BOOL CALLBACK _export WndProc ( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam ) { int i; MSG msg; mainhwnd=hwnd; switch(message) { case WM_INITDIALOG: SetWindowText(hwnd,TitleString); SetWindowPos(hwnd,(HWND)NULL,0,0,0,0,SWP_NOSIZE|SWP_NOZORDER); SetFocus(GetDlgItem(hwnd,105)); return(0); case WM_SHOWWINDOW: PostMessage(hwnd,WM_COMMAND,123,0); return(TRUE); case WM_COMMAND: switch(wparam) { case 123: cancel=FALSE; wsprintf(gstring,"%s.srt",command); fp=fopen(gstring,"rt"); if(fp==NULL) { MessageBox(hwnd,"Error opening file",TitleString,MB_OK); EndDialog(hwnd,TRUE); return(TRUE); } wsprintf(gstring,"%slist",command); out=fopen(gstring,"wt"); if(out==NULL) { MessageBox(hwnd,"Error creating file",TitleString,MB_OK); fclose(fp); EndDialog(hwnd,TRUE); return(TRUE); } while(fgets(newline,sizeof(newline),fp)) { while(PeekMessage(&msg,hwnd,0,0,PM_REMOVE)) { if(!IsDialogMessage(hwnd,&msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } if(cancel) break; ra=lstrlen(newline); if(ra<9) continue; newline[ra-1]=0; for(ra=0;newline[ra];ra++) { if(newline[ra]==' ') break; name[ra]=newline[ra]; } if(!newline[ra]) continue; name[ra]=0; for(rb=0,ra++;newline[ra];ra++) { address[rb++]=newline[ra]; } address[rb]=0; addr=inet_addr(address); sock=socket(AF_INET,SOCK_STREAM,IPPROTO_IP); if(sock==INVALID_SOCKET) { continue; } namesock.sin_family=PF_INET; namesock.sin_port=htons(80); namesock.sin_addr.s_addr=addr; if(connect(sock,(PSOCKADDR)&namesock,sizeof(SOCKADDR))==SOCKET_ERROR) { closesocket(sock); continue; } closesocket(sock); fprintf(out,"%s\n",name); addstring(name); } EndDialog(hwnd,TRUE); return(TRUE); case IDCANCEL: cancel=TRUE; break; } return(TRUE); } return(FALSE); } //------------------------------------------------------------------------------ // Copyright (c) David Welch, 1996 //------------------------------------------------------------------------------