Toon posts:

[PHP] Andere server benaderen???

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hmmz, ik heb nog nooit eerder wat met PHP gedaan, maar 'k probeer nu met een scriptje een andere HTTP server te benaderen, en deze vervolgens weer door te sturen naar de gebruiker op de huidige server (de server met het scriptje dus). Ik heb de volgende code geschreven:

?php
$fp = fsockopen ("192.168.0.2", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs ($fp, "GET /Testje/WebForm1.aspx HTTP/1.0\r\nHost: mezach.dyndns.info\r\n\r\n");
while (!feof($fp)) {
echo fgets ($fp,128);
}
fclose ($fp);
}
?>

Zoals je ziet gaat 't hier om een scriptje dat een andere pagina van een server binnen m'n eigen netwerk te benaderen. Dit heb ik gedaan in verband met de veiligheid, maar dat doet er verder niet zoveel toe.

't probleem is alleen dat als ik dit scriptje uitvoer het niet echt goed werkt. 't probleem is namelijk dat ik de headers die de andere server als letterlijke tekst te zien krijg in 't document (zie http://mezach.dyndns.info/jonathan/testje.php voor een voorbeeld). Ligt dit aan 't scriptje wat ik heb geschreven of doe ik iets anders fout.

Alvast bedankt.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Heb jij aspx en php naast elkaar draaien? (/offtopic)

antwoord: eval (werkt alleen bij php dus ;) )

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Je moet gewoon die header eraf halen, dus vanaf de 2x enter alles printen.

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Topicstarter
Hmmz, het probleem is dat ik op m'n webserver die via 't net bereikbaar is Apache heb draaien. En dat werkt niet zo makkelijk met ASP.NET (helemaal niet dus). Dus heb ik op m'n eigen computer IIS geinstalleerd en wou 'k het dus op deze manier proberen, maar dat werkt nog niet echt best.

Verwijderd

Topicstarter
Ennuhm, hoe doe'k dat. Die headers weg halen?

Verwijderd

Probeer het eens met Snoopy (zoek maar even met google)

  • Bas Jansen
  • Registratie: Juni 2000
  • Laatst online: 16-06 18:29
Misschien werkt dit beter?
PHP:
1
2
3
<?
readfile('http://mezach.dyndns.info/Testje/WebForm1.aspx');
?>

Verwijderd

Topicstarter
Hmmz, met die readfile functie krijg ik het volgende:

Warning: readfile("http://mezach.dyndns.info/Testje/WebForm1.aspx") - Success in /home/jmezach/public_html/testje2.php on line 2

'k moet zeker nog iets met de uitvoer daarvan doen. Maar aangezien mijn PHP skills niet zo best zijn heb ik geen idee wat en hoe. Iemand die me op weg kan helpen?

  • Bas Jansen
  • Registratie: Juni 2000
  • Laatst online: 16-06 18:29
Bij mij doet 'ie het gewoon, maar dan wel bij een url die gewoon bestaat (http://mezach.dyndns.info/Testje/WebForm1.aspx geeft een Error 404???)

Verwijderd

Topicstarter
Hmmz, maakt geen bal uit. Zie http://mezach.dyndns.info/jonathan/testje2.php. Deze geeft alleen die foutmelding en doet verder niets.

  • Bas Jansen
  • Registratie: Juni 2000
  • Laatst online: 16-06 18:29
PHP:
1
2
3
4
5
<?
if (!readfile('http://mezach.dyndns.info/Testje/WebForm1.aspx')) {
    echo 'Pagina niet gevonden!';
}
?>

En dan in je php.ini ff de warnings uitzetten, en ook eens proberen met een url die wel bestaat:
PHP:
1
2
3
4
5
<?
if (!readfile('http://www.basjansen.com/')) {
    echo 'Pagina niet gevonden!';
}
?>

Verwijderd

Topicstarter
Hmmz, dat lijkt wel te werken jah. Maar w'rom werkt het met m'n eigen server dan niet.

Hmmz, heb geloof ik al een idee, volgens mij heb ik m'n server nog helemaal niet draaien. Eens ffies kijken.

Verwijderd

Topicstarter
Hmmz, okeej nu doet ie 't wel goed. Maar die ASP pagina stuurt weer data door naar de server doormiddel van een form met een POST. Hoe zorg ik er voor dat die informatie ook weer door gelinked wordt naar de interne server???

  • ecageman
  • Registratie: September 2001
  • Laatst online: 19-06 21:42
Kun je niet gewoon squid gebruiken als reverse-proxy? (http-accelerated mode)

Die stuur alle http requests door naar de server die er achter staat. In squid kun je dan nog middels regular expressions het een en ander filteren. Hoef je dus niks te gaan programmeren.

AMD Athlon 2800+, MSI K7N2Delta-L, 1024MB PC3200, SB Audigy2, XFX GF4MX440, BenQ DVD+-RW, NEC 1300A DVD+-RW, 2x WD 120GB 8mb, 2x Maxtor 250GB, Chenbro Gaming Bomb, Tagan 480W, 17" Iiyama monitor


Verwijderd

Topicstarter
Ehmz, Squid is toch een HTTP proxy. Hoe kunnen mensen vanaf 't internet dan die Squid proxy gebruiken??
'k geloof da'k niet helemaal begrijp wat je bedoeld?

  • Lurge
  • Registratie: Maart 2000
  • Niet online

Lurge

ActueleWind

Kan je niet include gebruiken? Die kan ook remote files openen en hiermee kan je ook vars meesturen.
(of fopen)
of snap ik nou ook niet wat je bedoeld?? :)

ActueleWind


Verwijderd

Topicstarter
Ik heb wel een idee hoe'k het misschien kan proberen. Als ik nou die .aspx files koppel aan php (door de Apache configuratie te editen, dat is volgens mij wel mogelijk). Als ik vervolgens m'n php pagina dezelfde naam geef als m'n ASP pagina en vervolgens die variables doorstuur naar m'n interne server moet 't nog wel lukken. Maar hoe lees ik die variablen in PHP in en hoe stuur ik die weer door naar m'n Interne server??

Verwijderd

Topicstarter
Hmmz, okeej, dat eerste lukt dus al niet. Iemand een idee hoe'k het toch voor elkaar krijg?

  • ecageman
  • Registratie: September 2001
  • Laatst online: 19-06 21:42
Op maandag 25 februari 2002 17:38 schreef jmezach het volgende:
Ehmz, Squid is toch een HTTP proxy. Hoe kunnen mensen vanaf 't internet dan die Squid proxy gebruiken??
'k geloof da'k niet helemaal begrijp wat je bedoeld?
Je laat squid op poort 80 luisteren en alle requests doorsturen naar je webserver. (dat is accelerated mode). Zodoende kun je bijvoorbeeld een trage webserver versnellen door squid ervoor te zetten en te laten cachen. Andere mensen hoeven niet jouw proxy in te stellen in hun browser om zodoende jouw site te kunnen bezoeken aangezien squid gewoon op poort 80 (http) luistert. In accelerated mode kan squid ook overweg met gewone http-requests naast het proxy speicifieke formaat. Voor de volledige info over hoe en wat: http://www.squid-cache.org

AMD Athlon 2800+, MSI K7N2Delta-L, 1024MB PC3200, SB Audigy2, XFX GF4MX440, BenQ DVD+-RW, NEC 1300A DVD+-RW, 2x WD 120GB 8mb, 2x Maxtor 250GB, Chenbro Gaming Bomb, Tagan 480W, 17" Iiyama monitor

Pagina: 1