Seite 1 von 3

Quelltext einer Website auslesen.

Verfasst: Fr Sep 23, 2011 11:16 am
von canlot
Wie die Überschrift schon sagt will ich den Quelltext aus einer Westeite auslesen.

Ich habe im Internet gesucht und nichts passendes gefunden. Entweder haben die kompilierten Programme gestreikt oder die Anleitung war unverständlich. :x
Eines weiß ich: dass man mit Sockets arbeiten muss, aber wie ????.
Könnte mir einer bitte erklären oder ein ausführliches Tutorial empfehlen wo alles genau beschrieben steht und der Quellcode für C auch kompilerbar ist.

Vielen Dank im Vorraus.

Re: Qelltext einer Website auslesen.

Verfasst: Fr Sep 23, 2011 11:24 am
von Xin
canlot hat geschrieben:Wie die Überschrift schon sagt will ich den Quelltext aus einer Westeite auslesen.

Ich habe im Internet gesucht und nichts passendes gefunden. Entweder haben die kompilierten Programme gestreikt oder die Anleitung war unverständlich. :x
Eines weiß ich: dass man mit Sockets arbeiten muss, aber wie ????.
Könnte mir einer bitte erklären oder ein ausführliches Tutorial empfehlen wo alles genau beschrieben steht und der Quellcode für C auch kompilerbar ist.

Vielen Dank im Vorraus.
Gaaanz einfach kannst Du es Dir machen, wenn Du das Programm "wget" aufrufst.

Code: Alles auswählen

wget http://www.proggen.org/doku.php
Du postest aber in C/C++. Ein Tutorial wüsste ich jetzt nicht, im schlimmsten Fall könnte ich Dir höchstens eins schreiben. Das könnte aber ein Weilchen dauern. Wenn Du etwas weniger Geduld hast, könnte ich Dir heute abend einen C-Quellcode in den Thread kopieren, der genau das macht - wenn ich ihn auf die Schnelle finde. Ich habe das nämlich schonmal geschrieben.

Wobei... das wäre dann Linux, ob/wie das auf Windows zu übertragen wäre... ich weiß ja nicht auf welchem OS Du überhaupt unterwegs bist?

Re: Quelltext einer Website auslesen.

Verfasst: Fr Sep 23, 2011 11:33 am
von canlot
Xin hat geschrieben:Du postest aber in C/C++. Ein Tutorial wüsste ich jetzt nicht, im schlimmsten Fall könnte ich Dir höchstens eins schreiben. Das könnte aber ein Weilchen dauern. Wenn Du etwas weniger Geduld hast, könnte ich Dir heute abend einen C-Quellcode in den Thread kopieren, der genau das macht - wenn ich ihn auf die Schnelle finde. Ich habe das nämlich schonmal geschrieben.
Ein Tutorial ist vielleicht zu viel, aber sehr nett von Dir^^
Ein Quelltext der verständlich ist und sich kompilieren lässt würde ausreichen, wenn ich etwas nicht verstehe dann frage ich einfach :D.
Xin hat geschrieben:Wobei... das wäre dann Linux, ob/wie das auf Windows zu übertragen wäre... ich weiß ja nicht auf welchem OS Du überhaupt unterwegs bist?
Ich nutze Windows, wenn man es aber mit Sockets mach dann muss das doch auch auf Windows laufen, oder ?

edit: kann man den Themennamen ändern? ;)

Re: Quelltext einer Website auslesen.

Verfasst: Fr Sep 23, 2011 11:43 am
von nufan
Vielleicht hilft dir auch das weiter:
http://www.proggen.org/forum/viewtopic.php?f=32&t=1354

Re: Quelltext einer Website auslesen.

Verfasst: Fr Sep 23, 2011 12:01 pm
von canlot
dani93 hat geschrieben:Vielleicht hilft dir auch das weiter:
http://www.proggen.org/forum/viewtopic.php?f=32&t=1354
Ähm nein danke, Qt ist nichts für mich(vorerst).
Ich hätte nichts dagegen wenn ich das mit Sockets programmieren muss, auch wenn ich ziemlich viel lernen müsste.
Ich habe diesen Beispiel mal compiliert : http://cplus.kompf.de/artikel/httpget.html was ausnahmsweise mal tadellos funktioniert hatte, bekam aber dies ausgespuckt: "can't connect to server: no eror".
Ich verstehe den code auch nicht, woher nimmt er die IP-Adresse??? ist mir ein Rätsel.

Re: Quelltext einer Website auslesen.

Verfasst: Fr Sep 23, 2011 12:14 pm
von nufan
canlot hat geschrieben:
dani93 hat geschrieben:Ich verstehe den code auch nicht, woher nimmt er die IP-Adresse??? ist mir ein Rätsel.
Folgender Teil wandelt die per Kommandozeilenparameter übergebene URL eine IP um:

Code: Alles auswählen

/* Erzeuge die Socketadresse des Servers 
     * Sie besteht aus Typ, IP-Adresse und Portnummer */
    memset( &server, 0, sizeof (server));
    if ((addr = inet_addr( argv[1])) != INADDR_NONE) {
        /* argv[1] ist eine numerische IP-Adresse */
        memcpy( (char *)&server.sin_addr, &addr, sizeof(addr));
    }
    else {
        /* Wandle den Servernamen in eine IP-Adresse um */
        host_info = gethostbyname( argv[1]);
        if (NULL == host_info) {
            fprintf( stderr, "unknown server: %s\n", argv[1]);
            exit(1);
        }
        memcpy( (char *)&server.sin_addr, host_info->h_addr, host_info->h_length);
    }

Re: Quelltext einer Website auslesen.

Verfasst: Fr Sep 23, 2011 12:18 pm
von canlot
dani93 hat geschrieben:
canlot hat geschrieben:
dani93 hat geschrieben:Ich verstehe den code auch nicht, woher nimmt er die IP-Adresse??? ist mir ein Rätsel.
Folgender Teil wandelt die per Kommandozeilenparameter übergebene URL eine IP um:

Code: Alles auswählen

/* Erzeuge die Socketadresse des Servers 
     * Sie besteht aus Typ, IP-Adresse und Portnummer */
    memset( &server, 0, sizeof (server));
    if ((addr = inet_addr( argv[1])) != INADDR_NONE) {
        /* argv[1] ist eine numerische IP-Adresse */
        memcpy( (char *)&server.sin_addr, &addr, sizeof(addr));
    }
    else {
        /* Wandle den Servernamen in eine IP-Adresse um */
        host_info = gethostbyname( argv[1]);
        if (NULL == host_info) {
            fprintf( stderr, "unknown server: %s\n", argv[1]);
            exit(1);
        }
        memcpy( (char *)&server.sin_addr, host_info->h_addr, host_info->h_length);
    }
Schön und gut, aber woher nimmt er die URL? ^^ hat argv[1] was damit zu tun?

Re: Quelltext einer Website auslesen.

Verfasst: Fr Sep 23, 2011 12:31 pm
von nufan
canlot hat geschrieben:Schön und gut, aber woher nimmt er die URL? ^^ hat argv[1] was damit zu tun?
Wie gesagt, die URL wird per Kommandozeilenparameter übergeben.

Re: Quelltext einer Website auslesen.

Verfasst: Fr Sep 23, 2011 1:41 pm
von nouseforname
Komisch, ich hatte doch vorhin auch gepostet dass da sogar ein Beispiel ist wie der Servername bzw. Die IP als Argument übergeben wird. Aber nun seh ich den Post nicht... (oO wohl vor lauter demenz vergessen auf "Absenden" zu klicken)

Beispiel:

Code: Alles auswählen

httpget http://www.apache.org /index.html

Re: Quelltext einer Website auslesen.

Verfasst: Fr Sep 23, 2011 2:50 pm
von canlot
dani93 hat geschrieben:
canlot hat geschrieben:Schön und gut, aber woher nimmt er die URL? ^^ hat argv[1] was damit zu tun?
Wie gesagt, die URL wird per http://www.proggen.org/doku.php?id=c:fu ... :parameterKommandozeilenparameter übergeben.
Kann ich den auch so übergeben

Code: Alles auswählen

argv[1] = "http://www.proggen.org/?id=start";
?