Scratch Geschrieben 27. Juli 2003 Geschrieben 27. Juli 2003 Hi, ich möchte ein Programm schreiben das mir ständig die Geschwindigkeit aller laufenden Verbindungen anzeigt. Auch die Verbindungszeit wäre gut zu wissen. Sowas wie der DSL Speedmanager von T-Online oder dem Windows Taskmanager (Netzwerk) Wie kann ich die Anzahl der Verbindungen ermitteln, ihre Geschwindigkeit und Verbindungsdauer ? Danke für jede Hilfe ! Zitieren
xellon Geschrieben 28. Juli 2003 Geschrieben 28. Juli 2003 Hi, ich habe schon mal sowas ähnliches geschrieben, kann dir aber leider jetzt keinen beispiel geben. in MSDN findest du eine ganze menge dazu wenn du RAS (remote access server) eingebst wenn dich das DWORD RasEnumConnections( LPRASCONN lprasconn, // buffer to receive connections data LPDWORD lpcb, // size in bytes of buffer LPDWORD lpcConnections // number of connections written to buffer ); [/PHP] nicht weiter bringt dann sag bescheid, und ich gebe dir heute abend einen quellcode dazu. P.S. Unter "RAS Sample" findest du im MSDN einen beispiel wie man die ganzen functionen benutzt. Zitieren
Scratch Geschrieben 28. Juli 2003 Autor Geschrieben 28. Juli 2003 ich habs versucht aber ich bin nicht sehr weit gekommen ... hab das Sample auch nur in VB gefunden was mir auch nur wenig half ... int nRet; RASCONN Verbindung; DWORD nVerbindungen; DWORD nBytesderVerbindungen; nRet = RasEnumConnections(&Verbindung, &nBytesderVerbindungen, &nVerbindungen) if(nRet != 0) { MessageBox("Fehler!"); } else if(nRet == 0 && nVerbindungen == 0) { MessageBox("Gar keine Verbindungen aktiv !"); } else { MessageBox("Stimmt alles !"); for(int i = 0;i < nVerbindungen;i++) { // was kommt hier hin ????? } } [/PHP] guck mal drüber ist vielleicht ein anfang ... Danke für die Hilfe !!! Zitieren
Guybrush Threepwood Geschrieben 28. Juli 2003 Geschrieben 28. Juli 2003 Verbindung zeigt bei dir jetzt auf ein Array von RASCONN Strukturen, die die Informationen zu jeder Verbindung enthalten. In dem 2. Parameter den du RASEnumConnections() übergeben hast ist die Größe des Arrays drin, wenn du die durch sizeof(RASCONN) teilst, solltest du die Anzahl der Arrays erhalten (=Anzahl der Verbindungen). Damit kannst du ja dann einfach die Infos auslesen. Gruß Guybrush Zitieren
xellon Geschrieben 28. Juli 2003 Geschrieben 28. Juli 2003 Ich hatte auch eine weile gebraucht bis ich einen brauchbaren quelltext geschrieben habe. Wenn ich heute abend zu hause bin dann poste ich dir meinen quelltext. Es ist lange hier wo ich das geschrieben habe und kann dir leider jetzt nicht weiter helfen. Der vorschlag von Guybrush müsste funzen. Zitieren
xellon Geschrieben 28. Juli 2003 Geschrieben 28. Juli 2003 Hi! Die folgenden header-dateien muss du includieren: #include <ras.h> #include <raserror.h> und so findest du heraus wie viele verbindungen aktiv sind: LPRASCONN rasConn; unsigned long iSize, iNumber, iResult; rasConn = (LPRASCONN) malloc (sizeof (RASCONN) * 10); // 10 steht fuer 10 verbindungen und nicht vergessen //den speicher wieder frei zu geben wenn nicht mehr gebraucht wird rasConn[0].dwSize = sizeof (RASCONN); iSize = 10 * sizeof (RASCONN); iResult = RasEnumConnections (rasConn, &iSize, &iNumber); /*iNumber = anzahl der aktiven verbindungen mit eine for-schleife kannst du auch noch ein paar andere infos auslesen: for(long i = 0;i < iNumber;i++) { rasConn[i].szEntryName; //name der verbindung rasConn[i]->szDeviceType;// und so weiter... } */ [/PHP] Zitieren
Scratch Geschrieben 29. Juli 2003 Autor Geschrieben 29. Juli 2003 Hi, Danke erstmal !!! Ich hab das soweit übernommen und mal getestet LPRASCONN rasConn; unsigned long iSize, iNumber, iResult; rasConn = (LPRASCONN) malloc (sizeof (RASCONN) * 10); // 10 steht fuer 10 verbindungen und nicht vergessen //den speicher wieder frei zu geben wenn nicht mehr gebraucht wird rasConn[0].dwSize = sizeof (RASCONN); iSize = 10 * sizeof (RASCONN); iResult = RasEnumConnections (rasConn, &iSize, &iNumber); /*iNumber = anzahl der aktiven verbindungen mit eine for-schleife kannst du auch noch ein paar andere infos auslesen: */ for(unsigned long i = 0;i < iNumber;i++) { MessageBox("rasConn[i].szEntryName"); //name der verbindung //rasConn[i]->szDeviceType;// und so weiter... } [/PHP] jedoch bekomme ich immer folgenden Fehler: Traffic error LNK2019: unresolved external symbol _RasEnumConnectionsA@12 referenced in function "public: void __thiscall CTrafficDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CTrafficDlg@@QAEXXZ) Traffic fatal error LNK1120: 1 unresolved externals Da weis ich net weiter ... Zitieren
Guybrush Threepwood Geschrieben 29. Juli 2003 Geschrieben 29. Juli 2003 Du must dein Projekt noch mit der rasapi32.lib verlinken. Entweder stellst du das bei den Projekteinstellungen ein oder du schreibst am Anfang des Programms folgendes: #prgagma comment(lib,"rasapi32.lib") Gruß Guybrush Zitieren
Scratch Geschrieben 29. Juli 2003 Autor Geschrieben 29. Juli 2003 Ich benutze WinXP Danke es geht ! Wie kann ich denn jetzt noch den Transfer auslesen ? Wenn möglich sollte ich auch zwischen Down- und Upload unterscheiden können ! Bekommt man irgendwo noch mehr informationen über RAS ?? So wie im Eigenschaftsfenster von WinXP ??? IP usw ... ?? Zitieren
xellon Geschrieben 29. Juli 2003 Geschrieben 29. Juli 2003 Dafür muss du dir dieser DWORD RasAdminPortGetInfo( const WCHAR *lpszServer, // pointer to the server name const WCHAR *lpszPort, // pointer to the name of port on the server RAS_PORT_1 *pRasPort1, // receives the state of the port RAS_PORT_STATISTICS *pRasStats, // receives statistics about the port RAS_PARAMETERS **ppRasParams // receives an array of media-specific parameters and values ); funktion genauer angucken. Wenn der lpszServer = NULL ist dann wird der lokaler rechner angesprochen und den lpszPort bekommst du (bin aber nicht sicher) mit dieser DWORD RasAdminPortEnum( const WCHAR *lpszServer, // pointer to the server name PRAS_PORT_0 *ppRasPort0, // receives a pointer to an array of port information WORD *pcEntriesRead // receives the number of ports enumerated ); funktion. ppRasPort0->wszPortName; Ich weiss aber nicht ob das so funktioniert, ist nur eine idee, aber hoffe das es dir hilft. P.S. "rassapi.h" muss du includieren und mit "rassapi.lib" verlinken. Zitieren
Scratch Geschrieben 30. Juli 2003 Autor Geschrieben 30. Juli 2003 Geht das alles Eigentlich auch für LAN-Verbindungen ??? also im normalen Netzwerk ?? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.