internet connection



  • flenders schrieb:

    surf. schrieb:

    was is wenn ich net ins internet will...dann habn wir den salat!

    Das verstehe ich jetzt leider nicht 😕

    *g* ja wenn ich den pc starte und er hat eine netzwerkverbindung, dann schlägt diese obrige funktion fehl!! da ich mit dem server(wo ich internetfreigabe aktiviert habe) noch nicht im internet bin!!!

    surf. schrieb:

    ich könnte ja www.microsoft.com anpingen und schaun ob ich ne antwort bekomme? oder fällt dir was besseres ein??

    Sowas in der Art hatte ich gemeint 😉

    wie ping ich ne seite oder server an...und wie kann ich die antwort auswerten??

    wäre erfreut um eine hilfe!

    cu



  • Suchen hilft meistens. 😉 Das gibt dir z.B. folgenden Link: http://www.c-plusplus.net/forum/viewtopic.php?t=62371&highlight=ping



  • @WebFritzi:
    ist das ne gute lösung mit dem anpingen? den internet status zu bekommen? wenn die obrige lösung nicht korrekt arbeitet? wie würdest du das machen?

    cu!



  • Das erstmal ausprobieren!



  • welche parameter soll ich da übergeben vom hauptprog:

    int icmpProto::ping( char *host, int size, int timeout, int count, int pause )
    

    danke erst mal!!
    cu



  • Tja, leider ist das eine Memberfunktion einer Klasse, und der Urheber hat zu wenig Informationen über andere Members hinterlassen. Vielleicht schaust du einfach mal in der Suche nach anderen Quellen.



  • sind doch eigentlich selbsterklärend... 🙄



  • flenders schrieb:

    sind doch eigentlich selbsterklärend... 🙄

    für mich nicht!! was übergibt man da????

    bitte um hilfe!
    cu



  • Also für mich sieht das so aus:

    int icmpProto::ping( char *host, int size, int timeout, int count, int pause )

    host = Host an der ein Ping geht
    size = Packet Größe in Bytes
    timeout = wie lange muß auf Antwort gewartet werden, ob in ms, sek, oder min weiss ich nicht
    count = wieviele Packeten sollen geschickt werden
    pause = mit welchem Interval sollen die Packete gesendet werden

    oder fehlt jemanden was besseres ein???



  • need help!





  • Aha, man kann also anhand der Rückgabewerte von GetInternetConnectedState() feststellen, was für eine Verbindung besteht.

    @flenders: Wo ist da was selbsterklärend? Die Parameter der Funktion vielleicht, aber über die habe ich nichts geschrieben. Ich meinte die Klassenmembers. Und davon werden in der Funktion ein paar verwendet, und wo ist da was selbsterklärend?



  • @MASTER-Tim: das bringt mir nix!! da getinternetconnection nicht funktioniert wenn ich über netzwerk per internetfreigabe im internet bin!!
    erklärung:
    // GetInternetConnected() kapselt den Aufruf der API-Funktion
    // InternetGetConnectedState() aus der wininet.dll. Diese Funktion
    // liefert true auch wenn der Rechner nur an ein TCP/IP-Netzwerk
    // angeschlossen ist, bzw wenn ein Proxy-Server konfiguriert ist.
    // Der Rückgabewert 'true' ist daher mit Vorsicht zu geniessen: es
    // heisst noch lange nicht, dass die Verbindung zum Internet
    // tatsächlich besteht. Sollte die GetInternetConnected() also 'true'
    // liefern, könnte je nach Einzelfall eine Absicherung (z.B. durch
    // das Senden eines Pings zum Zielrechner) durchaus sinnvoll sein.

    cu



  • @WebFritzi: Meine Aussage bezog sich ausschließlich auf die Parameter 🙄



  • ///////////////////////////////////////////////////////////////////////////////////////////////////
    // Methode "InternetConnected()" liefert ein TRUE zurück falls Internetverbindung aktiv ist
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    bool InternetConnected()
    {
       char*  ptr;
       string command; 
       string ip; 
    
       ptr = new char[512]; 
    
       // Ip von www.suse.de
       ip="195.135.220.3";
    
       command = "PING " + ip + " -n 1"; 
       FILE *fp= _popen(command.c_str(),"r"); 
    
       sprintf(ptr,command.c_str()); 
    
       while(fgets(ptr,512,fp)!=NULL) 
       { 
         command = ptr; 
         if(command.find("Antwort",0)==0){ 
           // Es besteht Internetverbindung
           _pclose(fp); 
           delete ptr; 
           return true; 
         } 
       } 
    
       _pclose(fp); 
       delete ptr;
       // Es besteht keine Internetverbindung  
       return false;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    

    hi leute ich wollte das nun so machen mittn pingen...aber bekomme access voilation;-( geht das nicht bei einen winapi programm???

    cu surf.



  • Wo genau bekommst du den denn (-> Debugger) - außerdem sollte es doch delete [] ptr, oder 😕



  • ich muss mit dem debugger mal schaun...
    das kann man ja machen bei einem winapi prog:

    command = "PING " + ip + " -n 1";  
    FILE *fp= _popen(command.c_str(),"r");
    

    oder?
    ja delete [] gehörts!!!
    ich schau mal...
    cu



  • hi ich hab jetzt das mit einer message box überprüft!!
    access kommt mit dem beginn der while schleife:

    while(fgets(ptr,512,fp)!=NULL)
    

    ich weiß nicht was er da nicht will....fgets mag er nicht???!! ich weiß es nicht!! die funktion wird in winmain(.... aufgerufen....sollte passen oder??

    cu surf.



  • #include <windows.h>
    #include <string> 
    #include <iostream> 
    using namespace std; 
    
    int WinMain(HINSTANCE hInstance, HINSTANCE hPrevIsntance, LPSTR lpCmdine, int nShowCmd)
    {
      WNDCLASS WndClass;
      HWND hWnd;
      MSG Msg;
    
      char* ptr; 
      string command; 
      string ip; 
    
      ptr = new char[512]; 
    
      ip="suse.de"; 
    
      command = "PING " + ip + " -n 1"; 
      FILE *fp= _popen(command.c_str(),"r"); 
    
      sprintf(ptr,command.c_str()); 
    
      while(fgets(ptr,512,fp)!=NULL) 
      { 
        command = ptr; 
        if(command.find("Antwort",0)==0){ 
    	  MessageBox(NULL, "Your are online", "info", MB_OK | MB_ICONINFORMATION);
          _pclose(fp); 
          delete [] ptr; 
        } 
      } 
      _pclose(fp); 
      delete [] ptr; 
      MessageBox(NULL, "Your are online", "info", MB_OK | MB_ICONINFORMATION);
    
      return(Msg.wParam);
    }
    

    hi leute da ist das gesamte prog!! er gekommt access voilation bei gets!!!??? aber was ist da falsch????? ich finde den fehler nicht!! cu surf.



  • #include <windows.h>
    #include <string> 
    #include <iostream> 
    using namespace std; 
    
    int WinMain(HINSTANCE hInstance, HINSTANCE hPrevIsntance, LPSTR lpCmdine, int nShowCmd)
    {
      WNDCLASS WndClass;
      HWND hWnd;
      MSG Msg;
    
      char* ptr; 
      string command; 
      string ip; 
    
      ptr = new char[512]; 
    
      ip="suse.de"; 
    
      command = "PING " + ip + " -n 1"; 
      FILE *fp= _popen(command.c_str(),"r"); 
    
      sprintf(ptr,command.c_str()); 
    
      while(fgets(ptr,512,fp)!=NULL) 
      { 
        command = ptr; 
        if(command.find("Antwort",0)==0){ 
    	  MessageBox(NULL, "Your are offline", "info", MB_OK | MB_ICONINFORMATION);
          _pclose(fp); 
          delete [] ptr; 
          return(Msg.wParam);
        } 
      } 
      _pclose(fp); 
      delete [] ptr; 
      MessageBox(NULL, "Your are online", "info", MB_OK | MB_ICONINFORMATION);
    
      return(Msg.wParam);
    }
    

    hatte das return obn vergessen......aber er hängt no immer bei fgets.....das komische ist: das programm rennt bei einer konsolenanwendung aber bei winapi nicht;-(( ka ahnung!!!!! 😕 😕

    cu


Anmelden zum Antworten