network bzw. port-programming in c++

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/network_bzw_port-programming_in_c_83633/page_1 - zur Vollversion wechseln!


fresserettich schrieb am 25.06.2003 um 21:20

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 ;) :D)
kann mir da wer weiterhelfen?


FMFlash schrieb am 25.06.2003 um 21:28

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 ;)


funka schrieb am 25.06.2003 um 21:33

fm ich schaetz sein lehrer will einfach das er per port versucht eine socket aufzumachen
und wenns klappt das auszugeben


FMFlash schrieb am 25.06.2003 um 21:35

schön und gut, nur das ist etwas anderes als zu checken ob der port offen oder geschlossen ist.


fresserettich schrieb am 25.06.2003 um 21:36

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 :D


FMFlash schrieb am 25.06.2003 um 21:41

da dieses thema nicht in wenigen sätzen verständlich demonstriert werden kann gibts hier ein ausführliches tutorial der grundlagen


fresserettich schrieb am 25.06.2003 um 21:47

Zitat von FMFlash
da dieses thema nicht in wenigen sätzen verständlich demonstriert werden kann gibts hier ein ausführliches tutorial der grundlagen
englisch :bash: :D
danke erst mal
ist der link auf im tuterial auf oc.at weil da hätt ich eigentlich geschaut


FMFlash schrieb am 25.06.2003 um 21:52

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 ...


BuSHidO schrieb am 25.06.2003 um 22:36

UDP


Eat my shorts schrieb am 25.06.2003 um 22:44

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.


chaze schrieb am 25.06.2003 um 22:48

Zitat von FMFlash
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 ...

imho findest das im VC++ in 21 Tagen kapitel 19


atrox schrieb am 26.06.2003 um 02:30

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 .


atrox schrieb am 26.06.2003 um 02:37

Zitat von fresserettich
ist der link auf im tuterial auf oc.at weil da hätt ich eigentlich geschaut
jetzt schon :)


fresserettich schrieb am 26.06.2003 um 09:26

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


that schrieb am 26.06.2003 um 09:36

Zitat von fresserettich
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?

Da musst du so Optionen einstellen.


:bash: :bash: :bash:




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025