http Request



  • #include <windows>
    #include <Wininet.h>
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main()
    {
    
    HINTERNET connect = InternetOpen("MyBrowser",INTERNET_OPEN_TYPE_PRECONFIG,NULL, NULL, 0);
    
       if(!connect){
          cout<<"Connection Failed or Syntax error";
          return 0;
       }
    
    HINTERNET OpenAddress = InternetOpenUrl(connect,"http://127.0.0.1/index.php?data=SUPER_GEHEIMES_PASSWORT", NULL, 0, INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_KEEP_CONNECTION, 0);
    
       if ( !OpenAddress )
       {
          DWORD ErrorNum = GetLastError();
          cout<<"Failed to open URL \nError No: "<<ErrorNum;
          InternetCloseHandle(connect);
          return 0;
       }
    
       char DataReceived[4096];
       DWORD NumberOfBytesRead = 0;
    
       while(InternetReadFile(OpenAddress, DataReceived, 4096, &NumberOfBytesRead) && NumberOfBytesRead )
       {
               DataReceived[NumberOfBytesRead]='\x00';
               cout << DataReceived;
       }
    
       ofstream datei;
       datei.open("datei.txt");
       datei << DataReceived;
    
    system("PAUSE");
    }
    

    Funktioniert bei mir ohne Probleme.

    Aber bis du dir sicher das es nötig ist InternetReadFile in einer Schleife auszuführen? Regelt die Funktion das nicht intern selber das alle Bytes ausgelesen werden? (Naja, egal hab gerade kb iner Doku nachzuschauen.^^)



  • Hallo,

    bei mir geht es irgendwie nicht. Ich bin ratlos... Würdest du mir einen Gefallen tun und dir das bei mir ansehen?

    http://www.file-upload.net/download7293697/neu.rar.html



  • Ich hab deine Exe da drin nicht geöffnet sondern nur eben im OllyDebugger geschaut von welcher Seite du das da versuchst. (Ich zensier mal deinen Nachnamen). Beim Quelltext hattest du ja nur irgendwas mit example reingeschrieben daher wusste ich nicht von welcher Internetseite du die Datei auslesen wolltest.

    0041F970=neu.0041F970 (ASCII "http://www.sebastian-ZENSIERT.de/ip/iplog/read.php?data=SUPER_GEHEIMES_PASSWORT")
    

    Aber schau mal hier: <title>401 Authorization Required</title>

    Das erklärt wohl warum es nicht geht ...

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>401 Authorization Required</title>
    </head><body>
    <h1>Authorization Required</h1>
    <p>This server could not verify that you
    are authorized to access the document
    requested.  Either you supplied the wrong
    credentials (e.g., bad password), or your
    browser doesn't understand how to supply
    the credentials required.</p>
    <hr>
    <address>Apache/2.2.22 Server at www.sebastian-ZENSIERT.de Port 80</address>
    </body></html>
    Drücken Sie eine beliebige Taste . . .
    

    Schmeiss deine PHP Datei mal in ein Verzeichniss wo jeder Zugriff drauf hat ansonsten authentifizier dich einfach. Ka ob es jetzt eine WIN API Funktion für gibt ansonsten bau das selber mit Sockets nach.



  • Hallo,

    habe die htaccess wieder rausgenommen. Mache die auf gewisse Ordner immer rein. Hatte die reingemischt, da ich aus dem Haus bin.



  • Aber auch ohne htaccess geht es nicht.



  • Bassmaster schrieb:

    Eine PHP Datei kann man nicht einfach so wie eine HTML Datei von einem Webserver auslesen. Das hat auch so seine Gründe ...

    Ja, ja das ist ziemlich ärgerlich. Würde meine Arbeit sehr vereinfachen wenn es anders wäre...



  • @Bassmaster

    hast du es nochmal versucht? Ich habe das heute den ganzen Tag im Internet danach gescuht, aber finde dazu leider keine Lösung.

    Ich bekomme noch immer diese Ausgabe.



  • Ich bin gerade schwer beschäftigt ( http://www.c-plusplus.net/forum/p2305046#2305046 ) und gleich ist auch Feierabend.^^

    Aber ich habs nochmal versucht und ja es geht auch mit deiner Seite.

    #include <windows>
    #include <Wininet.h>
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main()
    {
    
    HINTERNET connect = InternetOpen("MyBrowser",INTERNET_OPEN_TYPE_PRECONFIG,NULL, NULL, 0);
    
       if(!connect){
          cout<<"Connection Failed or Syntax error";
          return 0;
       }
    
    HINTERNET OpenAddress = InternetOpenUrl(connect,"http://www.sebastian-ZENSIERT.de/ip/iplog/read.php?data=SUPER_GEHEIMES_PASSWORT", NULL, 0, INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_KEEP_CONNECTION, 0);
    
       if ( !OpenAddress )
       {
          DWORD ErrorNum = GetLastError();
          cout<<"Failed to open URL \nError No: "<<ErrorNum;
          InternetCloseHandle(connect);
          return 0;
       }
    
       char DataReceived[4096];
       DWORD NumberOfBytesRead = 0;
    
       while(InternetReadFile(OpenAddress, DataReceived, 4096, &NumberOfBytesRead) && NumberOfBytesRead )
       {
               DataReceived[NumberOfBytesRead]='\x00';
               cout << DataReceived;
       }
    
            ofstream datei;
            datei.open("datei.txt");
            datei << DataReceived;
    
       system("PAUSE");
    }
    


  • Ich verstehe es einfach nicht...

    Ich habe ein neues Projekt aufgemacht.

    die WinInet.lib eingebunden und deinen code genommen. Den einzigen Unterschied den ich habe ist, dass du #include <windows> verwendest und ich #include <windows.h>

    Aber bei mir kommt nach wie vor die Ausgabe falsch an... Hast du sonst irgendwelche Einstellungen vorgenommen? Könntest du dein Projekt irgendwo hochladen?



  • Ich hab es für dich hochgeladen, den Link hab ich dir per Email übers Forum geschickt.


Anmelden zum Antworten