02. august 2004 - 22:50
Der er
7 kommentarer
Telnet via C Eller C++ Programmering
Hej. Jeg vil gerne vide hvordan jeg kan logge ind på en ftp server via C/c++. Har prøvet følgende: void main() { system("telnet 192.168.30.2 259"); Sleep(1500); system("user\n"); Sleep(1500); system("pass\n"); system("pause"); } Det kan god kompileres men den vil ikke logge ind automatisk. Det skal jeg selv skrive. \Peter
Annonceindlæg fra Kingston Technology
02. august 2004 - 23:01
#2
Det er heller ikke ftp det er telnet. Jeg skal kun bruge den til at logge på en telnet server så jeg kan få adgang til en maskine. lidt mærkelig måde, men det virker
02. august 2004 - 23:31
#5
Prøv med noget a la dette her: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <windows.h> #include <errno.h> #define HOSTNAME "localhost" #define USERNAME "arne" #define PASSWORD "xxxxxxxx" int main(int argc,char *argv[]) { WSADATA WSAData; WSAStartup(0x0101,&WSAData); int sd,status,len,ix,tmp; char out[512],in[51200]; struct sockaddr local,remote; struct hostent *hostinfo; /* create socket */ sd=socket(AF_INET,SOCK_STREAM,0); if(sd<0) { printf("Error creating socket: %s\n",strerror(errno)); goto fin; } /* bind socket */ local.sa_family=AF_INET; memset(local.sa_data,0,sizeof(local.sa_data)); status=bind(sd,&local,sizeof(local)); if(status<0) { printf("Error binding socket: %s\n",strerror(errno)); goto fin; } /* lookup host */ hostinfo=gethostbyname(HOSTNAME); if(!hostinfo) { printf("Error looking up host: %s\n",HOSTNAME); goto fin; } /* connect to host */ remote.sa_family=hostinfo->h_addrtype; memcpy(remote.sa_data+2,hostinfo->h_addr_list[0],hostinfo->h_length); *((short *)remote.sa_data)=23; tmp=remote.sa_data[0]; remote.sa_data[0]=remote.sa_data[1]; remote.sa_data[1]=tmp; status=connect(sd,&remote,sizeof(remote)); if(status!=0) { printf("Error connecting to host: %s port: %d\n",HOSTNAME,23); goto fin; } /* login and do dir */ sprintf(out,"%s\r\n%s\r\ndir\r\n\exit\r\n",USERNAME,PASSWORD); status=send(sd,out,strlen(out),0); if(status<0) { printf("Error sending output\n"); goto fin; } /* read response */ ix=0; while ((len=recv(sd,in+ix,sizeof(in)-ix-1,0))>0) { ix = ix + len; } in[ix]='\0'; printf("%s",in); fin: closesocket(sd); WSACleanup(); return 0; }