[C/C++] Einfach den Internet Speed ermitteln

Dieses Thema im Forum "Projekte / Codes" wurde erstellt von N0S, 11. Juni 2010 .

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 11. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    Einfach den Internet Speed ermitteln

    Eine einfache und gute Möglichkeit den momentanen und maximalen Internet Speed zu ermitteln:

    Das hab ich nur gecoded zum testen, deswegen etwas unschön.... sollte auf allen Windows Versionen laufen...


    12.06.2010 // 19 Uhr compiled: No File | xup.in
    Code:
    #ifndef WIN32_LEAN_AND_MEAN
    #define WIN32_LEAN_AND_MEAN
    #endif
    
    #include <windows.h>
    #include <winsock2.h>
    #include <ws2tcpip.h>
    #include <iphlpapi.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    #pragma comment (lib, "iphlpapi.lib")
    #pragma comment (lib, "WS2_32.lib")
    
    void getInternetSpeed();
    void getCurrentNetworkSpeed();
    void fillArrayWithStartValues();
    int downloadSomething();
    BOOL getNumberInterface();
    void calcInternetSpeed();
    void getTable();
    BOOL random();
    
    MIB_IFTABLE* c_Table = NULL;
    DWORD size = 0;
    DWORD c_NumOfTables = 0;
    
    DWORD * dlspeed = 0;
    DWORD * ulspeed = 0;
    double maxdl = 0;
    double maxul = 0;
    double currentNetworkDL = 0;
    double currentNetworkUL = 0;
    int beenden = 0;
    
    const char * httpGet[] = {"GET /download/win2000platform/SP/SP3/NT5/EN-US/W2Ksp3.exe HTTP/1.0\r\nAccept: */*\r\nHost: download.microsoft.com\r\nUser-Agent: Mozilla/5.0/0.1\r\n\r\n","GET http://ftp.gwdg.de/pub/linux/slackware/slackware-current/extra/kde3-compat/qt3-3.3.8b-i486-opt1.txz\r\nHTTP/2.0\r\n\r\n","GET http://mirror.debianforum.de/debian-iso-archive/etch/i386/debian-40r8-i386-DVD-1.iso\r\nHTTP/2.0\r\n\r\n"};
    const char * httpHost[] = {"download.microsoft.com", "ftp.gwdg.de","mirror.debianforum.de"};
    
    int main(int argc, char *argv[])
    {
    
     if (getNumberInterface())
     {
     printf("Teste Download Speed....\n");
     calcInternetSpeed();
     }
     char c = getchar();
     return 0;
    }
    
    void getInternetSpeed()
    {
     fillArrayWithStartValues();
    
     for (int i = 0; i < 5; i++)
     {
     getTable();
     
     for(DWORD i = 0; i < c_NumOfTables; i++)
     {
    
     if (c_Table->table[i].dwOperStatus == IF_OPER_STATUS_OPERATIONAL && c_Table->table[i].dwType == IF_TYPE_ETHERNET_CSMACD)
     {
     if ((dlspeed[i] < c_Table->table[i].dwInOctets || ulspeed[i] < c_Table->table[i].dwOutOctets))
     {
     double download = (double)((c_Table->table[i].dwInOctets-dlspeed[i])/1024);
     double upload = (double)((c_Table->table[i].dwOutOctets-ulspeed[i])/1024);
    
     download -= currentNetworkDL;
     upload -= currentNetworkUL;
    
     //printf("\nDownload Speed: %4.2f Kbytes/sec\n",download);
     //printf(" Upload Speed: %4.2f Kbytes/sec\n\n",upload);
    
     if (maxdl < download)
     {
     maxdl = download;
     }
     if (maxul < upload)
     {
     maxul = upload;
     }
     } 
     dlspeed[i] = c_Table->table[i].dwInOctets;
     ulspeed[i] = c_Table->table[i].dwOutOctets;
     }
     }
     Sleep(1000);
     }
    }
    
    void calcInternetSpeed()
    {
     double tempMaxDL = 0;
     double tempMaxUL = 0;
    
     WSADATA wsaData;
     if ( WSAStartup(MAKEWORD(2,2), &wsaData) != 0) {
     printf("WSAStartup failed: %d\n");
     return;
     }
    
     getCurrentNetworkSpeed();
     for (int i = 0; i < 5; i++)
     {
     CreateThread(0,0,(LPTHREAD_START_ROUTINE)&downloadSomething,0,0,0);
     Sleep(20);
     }
     Sleep(1000);
     getInternetSpeed();
    
     beenden = 1;
     tempMaxDL = maxdl;
     tempMaxUL = maxul;
     Sleep(2000);
    
     beenden = 0;
    
     getCurrentNetworkSpeed();
     for (int i = 0; i < 5; i++)
     {
     CreateThread(0,0,(LPTHREAD_START_ROUTINE)&downloadSomething,0,0,0);
     Sleep(10);
     }
     Sleep(1000);
     getInternetSpeed();
    
     beenden = 1;
    
     delete dlspeed;
     delete ulspeed;
    
     printf("\n\nMax Download Speed: %4.2f Kbytes/sec\n",((maxdl>tempMaxDL) ? maxdl : tempMaxDL));
    
    }
    
    BOOL getNumberInterface()
    {
     if(GetNumberOfInterfaces(&c_NumOfTables) == NO_ERROR)
     {
     if(c_NumOfTables > 0)
     {
     size = sizeof(MIB_IFTABLE) + sizeof(MIB_IFROW) * c_NumOfTables;
     c_Table = (MIB_IFTABLE*)new char[size];
    
     if (c_NumOfTables > 10)
     {
     c_NumOfTables = 10;
     }
    
     dlspeed = new DWORD[c_NumOfTables];
     ulspeed = new DWORD[c_NumOfTables];
     } else {printf("Error GetNumberOfInterfaces");return 0;}
     } else {printf("Error GetNumberOfInterfaces");return 0;}
    
     return 1;
    }
    
    void getCurrentNetworkSpeed()
    {
     fillArrayWithStartValues();
    
     for (int i = 0; i < 3; i++)
     {
     getTable();
    
     for(DWORD i = 0; i < c_NumOfTables; i++)
     {
    
     if (c_Table->table[i].dwOperStatus == IF_OPER_STATUS_OPERATIONAL && c_Table->table[i].dwType == IF_TYPE_ETHERNET_CSMACD)
     {
     //printf("%s\n",c_Table->table[i].bDescr);
     if ((dlspeed[i] < c_Table->table[i].dwInOctets || ulspeed[i] < c_Table->table[i].dwOutOctets))
     {
     currentNetworkDL = (double)((c_Table->table[i].dwInOctets-dlspeed[i])/1024);
     currentNetworkUL = (double)((c_Table->table[i].dwOutOctets-ulspeed[i])/1024);
     } 
     dlspeed[i] = c_Table->table[i].dwInOctets;
     ulspeed[i] = c_Table->table[i].dwOutOctets;
     }
     }
     Sleep(1000);
     }
     //printf("\nCurrent Network Speed: %u\n",currentNetworkDL);
     //printf("current ul: %u\n",currentNetworkUL);
    }
    
    void getTable()
    {
     DWORD ret = GetIfTable(c_Table, &size, false);
    
     if (ret != NO_ERROR)
     {
     printf("GetIfTable failed %u",ret);
     return;
     }
    }
    
    void fillArrayWithStartValues()
    {
     getTable();
     for(UINT i = 0; i < c_NumOfTables; i++)
     {
     dlspeed[i] = c_Table->table[i].dwInOctets;
     ulspeed[i] = c_Table->table[i].dwOutOctets;
     }
    }
    
    int downloadSomething()
    {
     int iResult;
     SOCKADDR_IN addr;
     SOCKET s ,k;
     struct hostent *remoteHost;
     struct in_addr addr2;
     u_long iMode = 1;
     
     s = socket(AF_INET,SOCK_STREAM,0);
     k = s;
    
     if(s==INVALID_SOCKET)
     {
     printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
     return 1;
     }
     memset(&addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten 
    
     int randomHost = random();
     remoteHost = gethostbyname(httpHost[randomHost]);
     addr2.s_addr = *(u_long *) remoteHost->h_addr_list[0];
     //printf("%s\n",inet_ntoa(addr2));
    
     printf("Server choose: %s\n",httpHost[randomHost]);
    
     addr.sin_family=AF_INET;
     addr.sin_port=htons(80); // wir verwenden mal port 12345
     addr.sin_addr.s_addr=inet_addr(inet_ntoa(addr2)); // zielrechner ist unser eigener
    
     iResult = connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
    
     if(iResult == SOCKET_ERROR)
     {
     printf("Fehler: connect gescheitert, fehler code: %d\n",WSAGetLastError());
     return 1;
     }
    
     Sleep(rand() % 100);
    
     iResult = send(s, httpGet[randomHost],strlen(httpGet[randomHost]),0);
    
     if (iResult < 10)
     {
     printf("Fehler: send gescheitert, fehler code: %d\n",WSAGetLastError());
     }
    
     char * recvbuf = new char[50000];
     do {
    
     iResult = recv(s, recvbuf, 50000, 0);
     if ( iResult > 0 )
     {
     //printf("Bytes received: %d\n", iResult);
     }
     else if ( iResult == 0 )
     printf("Connection closed\n");
     else
     printf("recv failed: %d\n", WSAGetLastError());
     Sleep(5);
    
     } while( iResult > 0 && !beenden );
    
     closesocket(s);
     delete recvbuf;
    
     return TRUE;
    }
    
    BOOL random()
    {
     srand ( time(NULL) );
     srand ( time(NULL) );
    
     int s = (rand() % 100);
    
     if (s >= 70)
     return 2;
     else if (s < 30)
     return 1;
     else
     return 0;
    }
     

  2. Anzeige
  3. #2 11. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    du musst auch was downloaden mit z.B. firefox? :p

    ubuntu ist gut zum testen: Download Ubuntu Desktop | Ubuntu

    Automatisch downloaden geht noch nicht...

    Mit F1 kann man sich den max speed anzeigen lassen....

    compiled:
    siehe oben
     
  4. #3 11. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    Läuft super.
     
  5. #4 11. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Einfach den Internet Speed ermitteln

    Jaja, habe ich auch gemerkt, schreib das halt dazu. Habe mich schon gewundert, wie das funktionieren soll :D
    Hatte keine Lust den ganzen Code zu lesen, habs einfach compiled und ausgeführt.
     
  6. #5 11. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    Das Tool ist eben nicht für DAUs gedacht ;)

    Bei mir funktioniert es auch gut bis jetzt. Ich glaube aber, dass das mit der Schnittstelle nich unbedingt nötig ist um den max. Speed rauszufinden.

    greez
     
  7. #6 11. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    Ich bin ja auch keiner. Aber das von N0S funktioniert besser als deins :p
    Ich frage mich nur ob es so auch evtl. Netzwerktraffic mit zeichnet und so eine Falschausgabe macht?
    Müsste man mal testen.
     
  8. #7 11. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    ja das frag ich mich auch^^ kann das mal einer testen??

    hier ist der auto speed test, funktioniert perfekt...

    Code:
    #ifndef WIN32_LEAN_AND_MEAN
    #define WIN32_LEAN_AND_MEAN
    #endif
    
    #include <windows.h>
    #include <winsock2.h>
    #include <ws2tcpip.h>
    #include <iphlpapi.h>
    #include <stdio.h>
    
    
    
    
    #pragma comment (lib, "iphlpapi.lib")
    #pragma comment (lib, "WS2_32.lib")
    
    void GetSpeed();
    void fillArrayWithStartValues();
    int downloadSomething();
    
    MIB_IFTABLE* c_Table = NULL;
    DWORD size = 0;
    DWORD c_NumOfTables = 0;
    
    int * dlspeed = 0;
    int * ulspeed = 0;
    double maxdl = 0;
    double maxul = 0;
    int beenden = 0;
    
    int main(int argc, char *argv[])
    {
     if(GetNumberOfInterfaces(&c_NumOfTables) == NO_ERROR)
     {
     if(c_NumOfTables > 0)
     {
     size = sizeof(MIB_IFTABLE) + sizeof(MIB_IFROW) * c_NumOfTables;
     c_Table = (MIB_IFTABLE*)new char[size];
    
     dlspeed = new int[c_NumOfTables];
     ulspeed = new int[c_NumOfTables];
     } else {return 0;}
     } else {return 0;}
    
     fillArrayWithStartValues();
     //downloadSomething();
     CreateThread(0,0,(LPTHREAD_START_ROUTINE)&downloadSomething,0,0,0);
     for(;;)
     {
     GetSpeed();
     printf("##############################################\n");
     Sleep(1000);
     if((GetAsyncKeyState(VK_F1)&1)==1)
     {
     beenden = 1;
     break;
     }
     }
     
     printf("\n\nMax Download Speed: %4.2f Kbytes/sec\n",maxdl);
     printf("Max Upload Speed: %4.2f Kbytes/sec\n\n",maxul);
     char c = getchar();
     return 0;
    }
    
    void GetSpeed()
    {
     GetIfTable(c_Table, &size, false);
    
     for(DWORD i = 0; i < c_NumOfTables; i++)
     {
    
     if (c_Table->table[i].dwOperStatus == IF_OPER_STATUS_OPERATIONAL && c_Table->table[i].dwType == IF_TYPE_ETHERNET_CSMACD)
     {
     if ((dlspeed[i] < c_Table->table[i].dwInOctets || ulspeed[i] < c_Table->table[i].dwOutOctets))
     {/*
     printf("____________________________________________\n");
     printf("%s\n",(char*)c_Table->table[i].bDescr);
     
     printf("old: %u - ",dlspeed[i]);
     printf("new: %u",c_Table->table[i].dwInOctets);
     printf(" - diff: %u\n",c_Table->table[i].dwInOctets-dlspeed[i]);
    
     printf("old: %u - ",ulspeed[i]);
     printf("new: %u",c_Table->table[i].dwOutOctets);
     printf(" - diff: %u\n",c_Table->table[i].dwOutOctets-ulspeed[i]);*/
    
     double download = (double)((c_Table->table[i].dwInOctets-dlspeed[i])/1024);
     double upload = (double)((c_Table->table[i].dwOutOctets-ulspeed[i])/1024);
    
     printf("\nDownload Speed: %4.2f Kbytes/sec\n",download);
     printf(" Upload Speed: %4.2f Kbytes/sec\n\n",upload);
     dlspeed[i] = c_Table->table[i].dwInOctets;
     ulspeed[i] = c_Table->table[i].dwOutOctets;
    
     if (maxdl < download)
     {
     maxdl = download;
     }
     if (maxul < upload)
     {
     maxul = upload;
     }
     } 
    
     dlspeed[i] = c_Table->table[i].dwInOctets;
     ulspeed[i] = c_Table->table[i].dwOutOctets;
     }
     }
    }
    
    void fillArrayWithStartValues()
    {
     GetIfTable(c_Table, &size, false);
     for(UINT i = 0; i < c_NumOfTables; i++)
     {
     dlspeed[i] = c_Table->table[i].dwInOctets;
     ulspeed[i] = c_Table->table[i].dwOutOctets;
     }
    }
    
    int downloadSomething()
    {
     WSADATA wsaData;
     int iResult;
     SOCKADDR_IN addr;
     SOCKET s;
     struct hostent *remoteHost;
     struct in_addr addr2;
     long rc;
     const char * httpGet = "GET /download/win2000platform/SP/SP3/NT5/EN-US/W2Ksp3.exe HTTP/1.0\r\nAccept: */*\r\nHost: download.microsoft.com\r\nUser-Agent: uuu29a/0.1\r\n\r\n";
    
     // Initialize Winsock
     iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
     if (iResult != 0) {
     printf("WSAStartup failed: %d\n", iResult);
     return 1;
     }
     
     s = socket(AF_INET,SOCK_STREAM,0);
    
     if(s==INVALID_SOCKET)
     {
     printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
     return 1;
     }
     memset(&addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten 
    
     remoteHost = gethostbyname("download.microsoft.com");
     addr2.s_addr = *(u_long *) remoteHost->h_addr_list[0];
     //printf("%s\n",inet_ntoa(addr2));
    
     
     addr.sin_family=AF_INET;
     addr.sin_port=htons(80); // wir verwenden mal port 12345
     addr.sin_addr.s_addr=inet_addr(inet_ntoa(addr2)); // zielrechner ist unser eigener
    
     rc = connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
    
     if(rc==SOCKET_ERROR)
     {
     printf("Fehler: connect gescheitert, fehler code: %d\n",WSAGetLastError());
     return 1;
     }
    
     send(s, httpGet,strlen(httpGet),0);
    
     char * recvbuf = new char[2000];
     do {
    
     iResult = recv(s, recvbuf, 2000, 0);
     if ( iResult > 0 )
     {
     //printf("Bytes received: %d\n", iResult);
     }
     else if ( iResult == 0 )
     printf("Connection closed\n");
     else
     printf("recv failed: %d\n", WSAGetLastError());
    
     } while( iResult > 0 && !beenden );
     closesocket(s);
    
    }
     
  9. #8 11. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    Habs getestet, ist so wie ich dachte. Er misst alles was durch die Karte geht. Wenn ich auf meinem Notebook 'nen FTP aufsetze und dann eine Datei hoch/runter lade beinflusst das den Speedtest genauso als ob ich im Internet irgendwas lade.

    Das wird sich wahrscheinlich nur sehr schwer bis gar nicht ändern lassen, wenn weiterhin diese Methode benutzt wird denke ich?
     
  10. #9 11. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Einfach den Internet Speed ermitteln

    hier bitte mal alle testen^^

    No File | xup.in

    jetzt sollte der netzwerkspeed keine rolle mehr spielen...
     
  11. #10 11. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Einfach den Internet Speed ermitteln


    [​IMG]

    ...

    Irgendwie geht bei mir mehr rein&raus ....

    Und nein, ick lade nicht grade nebenbei oda ähnliches.

    Greetz

    edit:
    10/100mbit @de
    [​IMG]

    100mbit @us
    [​IMG]

    .... irgendwie ist der upspeed immer zu langsam.

    Zufall?

    Greetz²
     
  12. #11 11. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Einfach den Internet Speed ermitteln

    Downloadgeschwindigkeit ist weitestgehend korrekt.
    Der Upload jedoch um den Faktor 5 zu klein (bei mir).
     
  13. #12 11. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    Der Uploadspeed wird nicht getestet. In der exe waren noch paar bugs...

    probier mal das: oben neu
     
  14. #13 11. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Einfach den Internet Speed ermitteln

    ... Läuft ! :thumbsup:

    Thx & Greetz
     
  15. #14 11. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Einfach den Internet Speed ermitteln

    Ach Mist, MS hat mich nun wohl geblockt, weil ich zu oft den scheiss getestet habe^^
    hab jetzt nur noch einen dl speed von 100 bei MS...

    Oben ist jetzt der aktuelle sourcecode und hier die compiled exe: 11.06.2010 // 20 Uhr compiled: No File | xup.in

    glaub da verändere ich nichts mehr... vielleicht noch random dl host, aber das wars dann....
     
  16. #15 11. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    bei mir läuft komplett garnichts, bleibt bei 0 kbps

    habe windows 7, firewall deaktiviert und läuft trotzdem nicht
     
  17. #16 12. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Einfach den Internet Speed ermitteln

    naja ist ja sehr komisch...

    hab noch ein paar error checks reingebaut, probier das mal: https://www.xup.in/dl,17922940/speedtest.exe/

    hab auch win 7 64bit und da läufts^^
     
  18. #17 12. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Einfach den Internet Speed ermitteln

    [​IMG]

    und da hängt es dann
     
  19. #18 12. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    Bei mir kommt nur 6700 raus obwohl ich ne 50er Leitung hab, ...
    Also es funzt zwar, aber der Download ist sicherlich zu klein um eine genaue aussage treffen zu können ....

    Ich hab da vlltwas für dich :
    http://speedtest.netcologne.de/

    Dort hab ich mit den 1gb Files immer getestet ... sollte vllt etwas leichter sein ;-)
    lg
     
  20. #19 12. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    Hey ho!

    Schönes Teil. Ich post hier mal 'ne Variante die ich damals gemacht hatte (ohne UL), einfach damit man sich mal mehrere Varianten anschauen kann.

    Deine Idee mit den Netzwerkschnittstellen ist recht interessant.

    Code:
    /* Windows Only */
    #include <winsock.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    #pragma comment(lib, "ws2_32.lib")
    
    const char *host = "134.76.12.3"; // ftp.gwdg.de
    const short port = 80;
    
    int main( void )
    {
     SOCKET fd;
     WSADATA wsa = {0};
     struct sockaddr_in info = {0};
     size_t bytes = 0, sec_bytes = 0, cur, best = 0, avg = 0, worst = 0;
     char *_read;
     time_t start=0, end, bef = 0;
     char _send[] = "GET http://ftp.gwdg.de/pub/linux/slackware/slackware-current/extra/kde3-compat/qt3-3.3.8b-i486-opt1.txz\r\nHTTP/2.0\r\n"
     "\r\n";
    
     fd_set fd_con_read;
     int actions = 0, i;
    
     _read = malloc(524288*2);
    
     /* SETTING UP INFO */
     info.sin_family = AF_INET;
     info.sin_port = htons(port);
     info.sin_addr.S_un.S_addr = inet_addr(host);
    
     /* CREATING SOCKET & CONNECT + SEND REQUEST */
     WSAStartup(MAKEWORD(2,0), &wsa);
     fd = socket(AF_INET, SOCK_STREAM, 0);
     connect(fd, (struct sockaddr*)&info, sizeof(info));
     send(fd, _send, sizeof(_send), 0);
    
     /* RECV DATA TO VERIFY CONNECTION SPEED */
     if(!start) start = time(NULL);
    
     /* INIT SELECT */
     FD_ZERO(&fd_con_read); // container leeren
     FD_SET(fd, &fd_con_read); // und mit dem socket füllen
     
     while(0 != (actions = select(fd+1, &fd_con_read, NULL, NULL, NULL)) )
     {
     end = time(NULL)-start;
    
     for(i=0; i<actions; i++)
     {
     if( !FD_ISSET(fd, &fd_con_read) ) continue;
    
     if(0 != (cur = recv(fd, _read, 524288*2, 0)))
     {
     bytes += cur;
     } else break;
    
     /* GET SECONDS RECEIVED */
     if( bef+1 == end )
     {
     if( sec_bytes != 0 )
     {
     best = (best<sec_bytes/1024?sec_bytes/1024:best);
     worst = (worst>sec_bytes/1024 || worst == 0?sec_bytes/1024:worst);
     }
    
     sec_bytes = 0; 
     bef++;
     }
     else
     {
     sec_bytes += cur;
     }
     }
    
     if( end == 10 ) break;
     }
    
     /* CLOSING SOCKET */
     closesocket(fd);
     WSACleanup();
    
     free(_read);
    
     avg = (bytes/1024)/(short)end;
    
     printf("DL:\n\taverage: %u kb/s\n\tbest: %u kb/s\n\tworst: %u kb/s\n", avg, best, worst);
     getchar(); return 0;
    }
    
     
  21. #20 12. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Einfach den Internet Speed ermitteln

    Bei allen wo der falsche speed raus kommt, könnt ihr mal die bw.exe testen? Showthread Php 719205 / Download - RR:Suche

    Theoretisch sollte da dann auch das falsche raus kommen.
     
  22. #21 12. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    Also bei mir stimmt der Download Speed nun mit 3180 kb/sec.
    Allerdingst checkt er nun keinen Upload Speed mehr :)
     
  23. #22 12. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    Hmm also ich glaube der Grund für den zu niedrigen Download Speed ist wohl immer ein Server Problem...

    Das kann man wohl nur mit mehr Threads und/oder andere hosts lösen...

    @remaL
    Deins zeigt mir auch den falschen Speed an... also wohl auch ein Server Problem. Deins finde ich aber besser als meins... aber ich denke man kann nicht mehrere Threads laufen lassen, weil das wohl sehr schwer werden wird mit dem speed ausrechnen...
    Somit wäre die einzige Verbesserungsmöglichkeit den Test mit verschiedenen Server durchzuführen...
     
  24. #23 12. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    GetInfo v0.2 - Query system info and test bandwitdh
    Copyright (C) 2003-2004 sickness.
    http://www.this.website.doesnt.exist

    System info:
    Machine: \\XXX-000 running @ 2766 Mhz
    has been up for: 4 day(s), 4 hour(s), 27 minute(s),

    Running bandwidth test..........
    C:\ -> XXXXXXXX
    D:\ -> XXXXXXXX
    E:\ -> XXXXXXXX
    Max Input stream : 0KBps
     
  25. #24 12. Juni 2010
    AW: Einfach den Internet Speed ermitteln

    Das passier nur, wenn das Programm aus irgendwelchen Gründen den Host zum downloaden nicht erreichen kann. (Firewall, DNS-Probleme etc.)
     
  26. #25 12. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Einfach den Internet Speed ermitteln

    Ich glaub eher das die bw.exe nicht richtig unter Vista und 7 funktioniert.

    Ich hab mal Random Host eingebaut, vielleicht wird es dadurch genauer:
    No File | xup.in

    Es stehen 3 zur Auswahl die zufällig gewählt werden...
     

  27. Videos zum Thema
Die Seite wird geladen...
Similar Threads - Einfach Internet Speed
  1. Antworten:
    5
    Aufrufe:
    1.427
  2. Antworten:
    3
    Aufrufe:
    2.170
  3. Antworten:
    4
    Aufrufe:
    448
  4. Antworten:
    12
    Aufrufe:
    6.498
  5. Antworten:
    8
    Aufrufe:
    183