SEO-Software von Suchmaschinenoptimierung.de

Alternative zu exec(wget)

(hier klicken, um zum Original Thread zu gelangen)
TrioxX
Hi,

ich möchte ein paar Dateien von Rapidshare per Web auf meinen Server laden. Das mache ich z.Zt. mit wget. Hieraus ergeben sich jedoch einige Nachteile:

1. wget ist ziemlich serverlastig
2. bei Überlastung d. Servers wird das Passwort usw. angezeigt
3. exec selbst will ich eigentlich für das web deaktivieren aus sicherheitsgründen

So hole ich derzeit die Datei(en):

exec("wget --http-user USERNAME --http-passwd PASSWORT ".$getit);

Ich denke mal, dass es durchaus

- sicherere
- nicht serverlastige
- bessere (schnellere?)

Wege gibt, um das umzusetzen. Für jeden Vorschlag wäre ich dankbar. Ich habe mir übrigens auch schon fopen angesehen, aber damit scheint es nicht zu gehen (oder ich bin wie immer zu blöd...)

Danke schonmal smile
TroX
exec, passthru, proc_open, shell_exec, system


MfG
moonsword
fopen, fsockopen? also, wenn du reine php varianten suchst
TrioxX
Hi,

Ich benötige eine reine PHP Variante, um den Server nicht unnötig zu belasten

also ich wollte jetzt mal das Ganze mit CURL testen, aber anstatt dass irgendwas passiert steht nur auf der Seite index.php... Nix passiert ôÔ

<?php
set_time_limit(0);
ini_set('display_errors',true);

$fp = fopen (dirname(__FILE__) . '/test.rar', 'w+');
$ch = curl_init('http://rapidshare.com/files/XXXX/YYY.ZZZ');

curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/ Firefox 2.0.0.11, ProductSub: 20071127, RV version: 1.8.1.11');
curl_setopt($ch, CURLOPT_COOKIE, 'user=USERNAME-PASSWORT');
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

Mit einem simplen fopen ist das Ganze nicht so leicht denn

1. Erfordert die Verbindung den Benutzernamen und das Kennwort (für Premium Downloads, um Captcha etc. zu verhindern)

2. Ändert sich beim Aufruf einer Rapidshare URL der Servername.

Ich habe ein Script, welches das, was ich brauche, auch kann. Nur ist da viel drumrum, was für mein Vorhaben unnötig ist. Schnippel ich mir aber nur die Codezeilen aus, die für mich relevant sind, gibts nur Fehlermeldungen:

http://rapidshare.com/files/109196513/Rapidshotv4.rar

Da brauche ich einfach nur die Möglichkeit, dass ich mit $user und $pass (vordefiniert) die eingegebene Datei (z.b. http://rapidshare.com/files/109196513/Rapidshotv4.rar) herunterladen kann.

Wenn nötig, kann ich dem, der mir helfen kann/möchte auch meine Accountdaten geben.
moonsword
ist das nicht ein normaler http login? oder musst du selber einloggen? d.h. das login field ausfüllen und so...ich hab keine ahnung wie das bei rapidshare ist ^^

machst halt mit: fsockopen? musst zwar alles selber coden...aber sollte nicht soo das problem sein...ausser vielleicht cookie

könnte ghene, aber nicht getestet? vielleicht noch irgendein fehler ^^
php:
1:
2:
<?php $url 'http://username:password@rapidsharedatei.de'// Die Datei mit benutzername und passwort
$file 'datei.rar'//wo dus hinspeichern willst ?>

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<?php function getFromRapidshare($url,$file) {
        $url parse_url($url);
        $sock fsockopen($url['host'],80,$errno,$errstr,30);
        $buff 'GET '.(empty($url['path']) ? '/' $url['path']).(isset($url['query']) and !empty($url['query']) ? '?'.$url['query'] : '').' HTTP/1.0'."\r\n";
        $buff .= 'Authorization: Basic '.base64_encode($url['user'].':'.$url['pass'])."\r\n";
        $buff .= "\r\n";

        fwrite($sock,$buff);

        $fh fopen($file,'w+');
        while(!feof($sock)) {
                fwrite($fh,fread($sock,128));
        }
        fclose($fh);
        fclose($sock);
} ?>


edit: sonst schau dir mal tuxloader an....der ann das alles und noch mehr ^^ musst nur raussondern, was du brauchst großes Grinsen
TrioxX
Hi,

also funzen tuts nicht:

Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/web5/html/test/index.php on line 4

Kann es aber auch nicht, da es kein htaccess Login o.ä. ist, sondern eine Loginoberfläche:
https://ssl.rapidshare.com/premiumzone.html

In dem o.g. Script Rapidshot funktioniert das auch (ich glaube mit fopen) aber da ists ganz komisch gemacht... Ich steige da nicht wirklich durch. Ich glaube, soweit ich das erkennen kann, dass ein Ordner angelegt wird nach dem Schema USERNAME---PASSWORT. Das ist unnötig, da ich diese beiden Werte als Variable angebe. Nur kapier ich den Rest auch net großes Grinsen
moonsword
ja? das macht einen unterschied Zunge raus
aber mich wundert, dass dann wget geht, wie hast du denn die funktion aufgerufen?
weil wget setzt auch nur ein http passwort und kann eigentlich nicht mit formularen umgehen, soweit ich mich erinnere....
TrioxX
exec("wget --http-user USERNAME --http-passwd PASSWORT http://rapidshare.com/files/109196513/Rapidshotv4.rar");

So... Du kannst dir ja mal das Script ansehen => http://rapidshare.com/files/109196513/Rapidshotv4.rar


Wie ich bereits schrieb funktioniert es damit interessanterweise auch. Frag mich nicht, wie, aber es geht.
moonsword
Zitat:
Original von TrioxX
exec("wget --http-user USERNAME --http-passwd PASSWORT http://rapidshare.com/files/109196513/Rapidshotv4.rar");

So... Du kannst dir ja mal das Script ansehen => http://rapidshare.com/files/109196513/Rapidshotv4.rar


Wie ich bereits schrieb funktioniert es damit interessanterweise auch. Frag mich nicht, wie, aber es geht.

nein ich meinte....wie du MEINE funktion aufgerufen hast? nicht deine exec funktion, das weiss ich ja...damit funktioniert es ja.....mir geht es um meine funktion?
weil das sieht sehr danach aus, dass du sie falsch aufrufst:
php:
1:
<?php $url 'http://USERNAME:PASSWORD@rapidshare.com/files/109196513/Rapidshotv4.rar'?>
TrioxX
Da es sich um eine Funktion handelt, dachte ich an das:

getFromRapidshare('http://USERNAMEZunge raus ASSWORD@rapidshare.com/files/109196513/Rapidshotv4.rar', 'datei.rar')

falsch?! Anders hätte ich mir das nicht erklären können ^^
TrioxX
Ich verstehe diese ganze RS Technik irgendwie nicht -.- Ich habe mal irgendwo gelesen, dass das Ganze mit der Snoopy Klasse gehen soll.

Ich will den Server nicht zu sehr strapazieren und einer Gefahr aussetzen, wenn ich wget einsetze. Deswegen suche ich halt eine effiziente Alternative. Wenns nicht klappt... Shit happens ^^
moonsword
würde schon dran arbeiten ^^ bloss kann ich nichts testen Augenzwinkern

übrigens PM Box ist bei dir voll großes Grinsen

nuit aka moonsword
TrioxX
Sie haben Post, werter Herr großes Grinsen
(hier klicken, um zum Original Thread zu gelangen)



Tipp: Ranking-Konzept.de - Das SEO-Forum (Forum rund um die Suchmaschinenoptimierung) der artaxo AG.
Das große Versicherungs ABC von Versicherung.de - mit allen Aspekten der Computerversicherungen!
Fan-Foren.de, die große Community mit Musikforum ist ab sofort online.