afin de réutiliser un script fonctionnant dans un bloc code en PHP sur plusieurs Jeedom sans avoir à faire autre chose qu’un copier/coller, j’ai besoin de connaitre l’adresse IP de la machine hébergeant le Jeedom faisant tourner le script.
J’arrive bien à accéder à cette IP en passant par un bloc action et #IP#.
Je sais également le faire en passant par PHP pour appeler des commandes shell, mais j’aimerais savoir le faire en n’utilisant que les commandes internes de Jeedom.
J’ai trouvé dans l’API et le forum une fonction getClientIp(), je n’arrive pas à la faire fonctionner. Quoique je tente, je n’obtiens qu’une variable vide.
Alors, je peux faire avec le bloc action et #IP#, mais pour ma culture personnelle, quelqu’un sait-il comment connaître l’adresse IP locale de la machine Jeedom en pur Jeedom ? (pas 127.0.0.1, mais l’adresse IP sur le réseau local).
Merci Oui, je l’avais vu et ça ne fonctionne pas dans mon script. Et je viens de réaliser pourquoi : ça permet d’obtenir l’adresse IP du client qui se connecte ou qui envoie une requête au serveur Jeedom. Pas l’IP du serveur
Ceci étant, la question reste ouverte : comment dans un bloc code PHP d’un scenario connaître l’adresse IP locale du serveur Jeedom sur lequel le script fonctionne ? En pur Jeedom.
Avec cette commande tu obtiens l’ip configurée dans la config jeedom, onglet « réseau », section « Accès interne » (par jeedom par défaut donc à priori la bonne mais elle a pu être modifiée par l’utilisateur):
Une question bonus : si la machine a changé d’IP sur le réseau local et que l’utilisateur n’a pas fait la modification nécessaire dans l’onglet réseau de la section Configuration, le bidouillage que j’ai commis va-t-il refléter la nouvelle adresse IP ou n’est-il qu’une façon compliquée d’accéder à l’information fournie par network::getNetworkAccess('internal', 'ip')?
je pense que tu auras la nouvelle ip avec getInterfacesInfo
mais je pense que c’est préférable d’aller chercher celle de la config via la fonction que je donne car c’est ce qu’a configuré l’utilisateur: il pourrait y avoir des cas où c’est un nom de domaine ou un ip d’un reverse proxy interne etc;
je ne sais pas pour qu’elle raison mais du coup utiliser cette config respecte plus le choix de l’utilisateur; à lui d’avoir une config correcte s’il modifie quelque chose (et la page santé sera en NOK si c’est le cas)
Je posais la question pour l’avenir. Au cas où j’aurais besoin d’écrire un script qui aurait besoin de connaître la véritable IP locale sans pouvoir faire confiance à l’utilisateur et sans passer par des appels système.