URL: https://www.overclockers.at/coding-stuff/network_bzw_port-programming_in_c_83633/page_1 - zur Vollversion wechseln!
habe folgendes problem in c++:
ich muss bei einem rechner bestimmte ports checken und zwar ob diese offen sind oder nicht?
und ich bräuchte dazu die nötige funktion und habe leider keine ahnung wie ich es angehen, soll und auch keine ahnung nach was in eventuell suchen soll (ps kommts ma bitte ned mit google
)
kann mir da wer weiterhelfen?
ich nehme an es gilt die verwendung von TCP. wenn du an einen port connectest der geschlossen ist dauert es in der regel erheblich länger bis der versuch fehlschlägt als wenn der port offen ist (und kein dienst die verbindung akzeptiert). das würde ich mir zunutze machen.
vielleicht gibt es aber auch eine effektivere methode, ich lass mich überraschen
fm ich schaetz sein lehrer will einfach das er per port versucht eine socket aufzumachen
und wenns klappt das auszugeben
schön und gut, nur das ist etwas anderes als zu checken ob der port offen oder geschlossen ist.
also muss gleich mal vorweg nehmen es ist nicht für die schule sondern für ne lan und der des organisiert braucht des proggi und ich habs gesagt ich probiers mal
also es ist keine hü sondern ich brauchs privat
ja also ich wär schon mal glücklich wenn mir wer sagen könnt wie ich überhaupt zu einem bestimmten port eine connection aufstellen kann
da dieses thema nicht in wenigen sätzen verständlich demonstriert werden kann gibts hier ein ausführliches tutorial der grundlagen
englischZitat von FMFlashda dieses thema nicht in wenigen sätzen verständlich demonstriert werden kann gibts hier ein ausführliches tutorial der grundlagen
jap, englisch, aber wenn du ein deutsches findest, lass dich nicht aufhalten
ka obs in der liste steht, ich hab den link grad auf die schnelle rausgesucht ...
UDP
socket programming
http://www.fsoft.de/netkomp/
das skript das du suchst, das wird sicher net lang, ich glaub in reinem C kann man das in wenigen Zeilen abhandeln, wie eh schon gesagt brauchst nur einen connect auf den ziel port machen, der liefer -1 wenn er net erreichbar, somit is das proggy eh schon wieder erledigt.
Zitat von FMFlashjap, englisch, aber wenn du ein deutsches findest, lass dich nicht aufhalten![]()
ka obs in der liste steht, ich hab den link grad auf die schnelle rausgesucht ...
ist schon seit jahren der "standard", und sollte spätestens seit matrix reloaded in die breite öffentlichkeit geleakt sein: http://www.nmap.org/
anaonsten ist selbstprogrammieren immer spannend und man lernt viel dabei .
jetzt schonZitat von fresserettichist der link auf im tuterial auf oc.at weil da hätt ich eigentlich geschaut
jetzt hab ich an code nur hab ich irgendwie probs beim compilieren im vs .net immer so linking probs hat da jemand ne ahnung was es da haben könnte?
Code:#include <windows.h> #include <winsock.h> #include <stdio.h> #include <string.h> #include <iostream.h> //#include <stdlib.h> //#include <Af_irda.h> void WSAInit(void) { WORD wVersionReg = MAKEWORD(1,1); WSADATA wsaData; if (int err = WSAStartup(wVersionReg, &wsaData) != 0) { puts("Fehler: Initialisieren - WinSock.dll!"); } } //WsaInit void main() { int i,j,contr; int ports[50][20]; char ips[50][20]; char *str; for(i=0;i<50;i++) for(j=0;i<20;j++) ports[i][j]=0; for(i=0;i<50;i++) strcpy(ips[i],"noip"); cout <<"Eingabe mit 'e' beenden; max. 50 IPs mit max. 20 Ports"<<endl; /* eingabe*/ /*for(i=0;i<50 && strcmp(str,"e")!=0;i++) { cout<<"Bitte geben Sie die IP ein:"<<endl; cin >>str; if(strcmp(str,"e")!=0) { strcpy(ips[i],str); cout <<"Eingabe mit 'e' beenden"<<endl; for(j=0;j<20 && strcmp(str,"e")!=0;j++) { cin>>str; if(strcmp(str,"e")!=0) ports[i][j]=atoi(str); }//for }//if }//for /* eingabe */ i=0; while(1) { if(strcmp(ips[i],"noip")==0) i=0; if(i==50) i=0; cout <<"Port-Check der IP:"<<ips[i]<<endl; SOCKET sock = INVALID_SOCKET; struct sockaddr_in server; server.sin_addr.s_addr = inet_addr(ips[i]); server.sin_family = AF_INET; WSAInit(); for(j=0;i<20 && ports[i][j]!=0;j++) { server.sin_port = htons(ports[i][j]); if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) { puts("Fehler beim Erstellen des Socket!\n"); }//if contr = connect(sock, (sockaddr *) &server ,sizeof(server)); if (contr < 0) printf("\n\tPort %d closed", ports[i][j]); else printf("\n\t### Port %d open ###", ports[i][j]); closesocket(sock); }//for WSACleanup(); }//while }//main
Zitat von fresserettichjetzt hab ich an code nur hab ich irgendwie probs beim compilieren im vs .net immer so linking probshat da jemand ne ahnung was es da haben könnte?
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025