Récupérer $_SERVER depuis un shell

Fermé
renardo07 - 25 mars 2019 à 11:01
 Utilisateur anonyme - 27 mars 2019 à 13:41
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)
A voir également:

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
25 mars 2019 à 12:21
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
25 mars 2019 à 13:28
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
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
27 mars 2019 à 13:41
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