Forum Clubic

Chercher une chaîne de caractères dans une page en réseau local

Bonjour à tous !

Voilà mon problème : je dois pouvoir chercher une chaîne de caractères dans une page.

J’ai donc testé ce code :

$contenu_page = file_get_contents('http://www.google.fr');
if(preg_match("/google/i", $contenu_page))
	echo "Chaîne trouvée !";
else
	echo "Chaîne absente !";

Il marche très bien, pour un site externe. Seulement, j’aimerais chercher la chaîne de caractère “Toner restant” sur une page du réseau de l’établissement. (En fait c’est l’adresse IP d’une imprimante…)

Mais lorsque je mets l’adresse locale dans mon code :

$contenu_page = file_get_contents('http://172.16.**.**/Istatus.htm');
if(preg_match("/Toner restant/i", $contenu_page))
	echo "Chaîne trouvée !";
else
	echo "Chaîne absente !";

Ca m’affiche (sous Chrome) :

Alors que je suis bien connectée au réseau puisqu’en tapant l’adresse “http://172.16../Istatus.htm”, je tombe sur la page voulue.

J’ai testé également avec ce code :

$fichier = fopen('http://172.16.**.**/Istatus.htm', "r");
$contenu_page = '';
while (!feof($fichier))
	$contenu_page .= fread($fichier, filesize($contenu_page));
fclose($fichier);
if(preg_match("/Toner restant/i", $contenu_page))
	echo "Chaîne trouvée !";
else
	echo "Chaîne absente !";

Et ça me donne exactement le même résultat.

Alors j’aimerais bien comprendre pourquoi ce code fonctionne très bien avec une page externe au réseau de l’établissement, mais pas avec une page interne de ce réseau…

Merci d’avance de vos réponses !

Voyel.

Ton script n’a peut-être pas les droits (firewall, etc) de taper le réseau interne, mais juste le réseau externe.
Je te conseille de d’abord regarder dans les logs du serveur interne voir si tu as bien une connexion faite.

Le truc que je ne comprends pas, c’est que lorsque je veux afficher le code source de la page “manuellement” (clic droit > afficher le code source de la page), il s’affiche bien.