"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

network bzw. port-programming in c++

fresserettich 25.06.2003 - 21:20 1555 20
Posts

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5381
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

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
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

Legend
ex-prophet(down below)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
fm ich schaetz sein lehrer will einfach das er per port versucht eine socket aufzumachen
und wenns klappt das auszugeben

FMFlash

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
schön und gut, nur das ist etwas anderes als zu checken ob der port offen oder geschlossen ist.

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5381
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

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
da dieses thema nicht in wenigen sätzen verständlich demonstriert werden kann gibts hier ein ausführliches tutorial der grundlagen

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5381
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

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
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

ist süß
Registered: Jul 2001
Location: galaxie
Posts: 542
UDP

Eat my shorts

Little Overclocker
Avatar
Registered: Dec 2002
Location: Österreich
Posts: 56
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

STIEGL Case 0wn0r
Avatar
Registered: Nov 2002
Location: Braunau
Posts: 1016
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

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
Zitat von fresserettich
ist der link auf im tuterial auf oc.at weil da hätt ich eigentlich geschaut
jetzt schon :)

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5381
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

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
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:
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz