[PHP] gethostbyname buiten PHP bestand laten uitvoeren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als je het volgende commando gebruikt (ik heb getest in PHP 4.2.0):

<?php
$host = "www.tweakers.net";
$ipadres = @gethostbyname($host);
echo $ipadres;
?>

Dan krijg je zoiets als "213.239.154.35" terug. No problem tot nu toe. Ik zit echter met het volgende probleem. Op de server waar mijn site op staat is het commando gethostbyname niet mogelijk. Technisch verhaaltje, te lang om nu uit te leggen. Ik wil dus mijn script opsplitsen, en een deel op een andere server zetten, maar DAT dat lukt me niet. Ik heb nu dit:

www.server1.nl/bestandA.php:
<?php
$host = "www.tweakers.net";
include ("www.server2.nl/bestandB.php?host=$host");
echo $ipadres;
?>

en

www.server2.nl/bestandB.php:
<?php
$ipadres = @gethostbyname($host);
?>

Maar helaas, de variabele $ipadres is niet gedefinieerd.

Hoe kan ik dit oplossen?

Acties:
  • 0 Henk 'm!

Verwijderd

kun je met include wel php uitvoeren van een andere host af :?

volgensmij niet.. want anders zou het dus ook mogelijk zijn om php code van een andere site te rippen

edit// hij zal het waarschlijk alleen als output lezen omdat ie een HTTP GET doet

[ Voor 21% gewijzigd door Verwijderd op 01-12-2002 20:27 ]


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 17-09 22:12
Misschien wat simplistis.
/bestandB.php
PHP:
1
2
3
4
<?php
$ip = gethostbyname($_GET["host"]);
echo $ip;
?>

Server1 kan nooit php vars krijgen van server2 want PHP is serverside!.

Acties:
  • 0 Henk 'm!

  • Steven
  • Registratie: December 2000
  • Laatst online: 05-07 21:17
Je zou een plaatje op je pagina kunnen zetten die verwijst naar een php pagina op server2 icm een unieke ID. Als Server 1 daar dan bij zou kunnen (gewoon via FTP/HTTP) kan je het IP adres achterhalen.

Enige nadeel is dat je het IP adres pas de 2de pageview te pakken hebt...

Acties:
  • 0 Henk 'm!

  • ddofborg
  • Registratie: Augustus 2000
  • Laatst online: 06-05 19:28
wat je moet doen is het volgende:
op server2 zet je dit:
PHP:
1
2
$ipadres = @gethostbyname($host);
echo "&ipadres=$ipadres;

en dat kun je parse_str gebruiken om variabelen uit te lezen

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Om dit te laten werken zul je bestandB niet html, maar php moeten laten uitpoepen. Include houd in dat er op die plek een bestand wordt tussen gevoegd. Waneer dit via een url gaat is dit niet anders dan waneer je het in de browser in zou tikken. bestandB is leeg (check maar in de browser) dus zal er in bestandA niks worden tussen gevoegd. Waneer je nu zorgt dat bestandB php code genereert zal het wel gaan werken:
PHP:
1
2
3
4
5
<?
echo "<?php";
echo "$ipadres = ".gethostbyname($host).";";
echo "?>";
?>

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1