Récupérer $_SERVER depuis un shell

renardo07 -  
 Utilisateur anonyme -
Bonjour,
Dans le but de mettre en place un système de monitoring avec des sondes sur les serveurs clients, je dois executer chaque heure un fichier PHP sur le serveur client (via un cron) qui insérera des données dans une bdd externe.
Mon souçis est que j'aimerai récupérer des infirmations contenue dans la Variable $_SERVER.
Lorsque j'execute mon script.php via mon navigateur aucun souçis je récupère.
Mais lorsque je fais "php folder/script.php", mes données s'inserts mais je ne récupère pas la valeur $_SERVER['HTTP_CLIENT_IP'] (ou autre, comme REMOTE_ADDR) mais "unknown".

Comment puis avoir cette information svp ? (edit : les serveurs clients ne sont pas sous linux mais sur du NAS Syno)

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Comme indiqué dans la documentation de php
https://www.php.net/manual/fr/reserved.variables.server.php



$_SERVER est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script. Les entrées de ce tableau sont créées par le serveur web. Il n'y a aucune garantie que tous les serveurs les rempliront tous ; certains en oublieront quelques-unes et en rajouteront de nouvelles non mentionnées ici


Et surtout ...

Notez que certains, n'auront pas de sens si vous utilisez PHP en ligne de commande.

1
Utilisateur anonyme
 
Bonjour

Quand tu exécutes "php folder/script.php", il n'y a pas de connexion à internet, donc pas de HTTP ni de serveur web. Donc les ['HTTP_CLIENT_IP'] et autres REMOTE_ADDR n'ont aucune raison d'exister.
0
benji69340
 
Hum je comprend mieux.
Mais ce cas là comment récupérer l'adresse IP du serveur ?
Car sans l'adresse IP (qui peut être dynamique), je ne peux faire mon get_header pour récupérer le status HTTP .
0
Utilisateur anonyme
 
Quel adresse IP et quel status HTTP ? Quand tu lances un script php par le shell, il n'Y A PAS (je me répète) de connexion internet et encore moins HTTP donc pas d'adresse IP ni de status HTTP.

Que cherches-tu vraiment à faire ? Tu parles de monitoring sur les serveurs clients (oxymore amusant !). Peux-tu décrire un peu plus la structure : quelle(s) machine(s) interroge quelle(s) autres avec quel(s) protocole(s) .
0