Erreur Module Dyndns

Bonjour à tous

J’ai tous les jours des erreur sur le module Dyndns

dyndns Erreur sur la fonction cron15 du plugin : Echec de la requête HTTP : https://infodrey.com-infodrey:**********@www.ovh.com/nic/update?system=dyndns&hostname=infodrey.com&myip= 429 Too Many Requests 429 Too Many Requests nginx cURL error : Illegal characters found in URL

Mais aussi

dyndns Erreur sur la fonction cron15 du plugin : Echec de la requête HTTP : https://infodrey.com-infodrey:**********@www.ovh.com/nic/update?system=dyndns&hostname=infodrey.com&myip=**.**.**.**.** cURL error : Operation timed out after 2000 milliseconds with 0 out of 0 bytes received

Merci pour votre aide

1 « J'aime »

Bonjour,

Le premier message que tu donnes est la réponse de OVH, tu ne sais pas quel est le caractère illégal.
Vu qu’il y a très peu d’information de log pour ce plugin, il est difficile de t’aider.
Il va te falloir modifier un fichier du plugin pour ajouter du log. Tu peux faire cela avec le plugin jeexplorer.
Le fichier à modifier est /plugins/dyndns/core/class/dyndns.class.php
Dans la fonction updateIP, dans le case ‹ ovhcom ›, ajoute la ligne
log::add('dyndns', 'debug', $url);

entre les ligne $url= … et $request_http = new …

Passe le niveau de log pour dyndns vers debug.
Cela te permettra de voir exactement ce que tu envois comme requête à OVH.

Pour ton deuxième message, as tu cela régulièrement ?
Perso, je constate cela lors du reboot de mon router, ou lors d’une perte de lconnexion vers internet.

1 « J'aime »

Merci. Je m occupe de ça demain.

Bonne soiree

Bonjour,

J’ai eu le même message d’erreur (le premier) ce matin:

[2020-12-31 06:15:22][ERROR] : Erreur sur la fonction cron15 du plugin : Echec de la requête HTTP : https://@dynupdate.no-ip.com/nic/update?hostname=xxxxxxxxx&myip=<html> <head><title>429 Too Many Requests</title></head> <body> <center><h1>429 Too Many Requests</h1></center> <hr><center>nginx</center> </body> </html> cURL error :

En fait, j’ai l’impression que c’est le service chargé de retourner notre IP publique qui retourne l’erreur 429, et le plugin prend ce retour comme la nouvelle valeur d’adresse IP, et tente de mettre à jour l’IP (chez NO-IP dans mon cas) avec le message d’erreur (à la place de l’IP)
=> j’ai eu droit à une mise à jour 15 minutes plus tard, mais avec la bonne IP cette fois

Cordialement,
Philippe

Je confirme: c’est http://myip.dnsomatic.com/ qui me retourne l’erreur 429 en ce moment.

J’imagine que http://checkip.dyndns.com n’a pas répondu, et l’appel à dnsomatic est retourné tel quel (en tant qu’adresse IP) dans le plugin…

Ce serait pas mal de pouvoir passer l’IP externe en paramètre au plugin: j’utilise un autre plugin pour récupérer mon IP externe (livebox), donc j’aimerais bien pouvoir passer cette info au plugin DynDns, pour qu’il n’ait pas besoin de faire une requête http pour la récupérer: j’aimerais remplacer l’appel http par un appel au plugin livebox par exemple, ou un truc dans le genre… Je pense pouvoir faire cela dans un scenario, en m’inspirant du code du plugin, mais cela pourrait-être une idée d’évolution :wink:

Pour mon cas personnel, j’ai ajouté ces quelques lignes dans le plugin, à l’aide de Jeexplorer (au début de getExternalIP()):

$cmd = cmd::byString("#[Salon][Livebox][IP Wan]#");
$value = $cmd->execCmd();
log::add('dyndns', 'debug', 'IP Wan:' . $value);
return $value;

Après, je ne connais pas encore assez Jeedom pour proposer une évolution générique du plugin…

Bonjour,

J’ai aussi depuis toujours (!) un problème d’erreur systématique du plugin à la mise à jour de l’IP sur OVH.com : cURL error : Resolving timed out after 2511 milliseconds.
Pourtant, si je copie la requête et l’exécute dans un navigateur, le serveur OVH répond bien : Good avec l’IP derrière.
Il semblerait donc que la requête soit la bonne mais que le plugin ne capte pas la réponse.
La requête est (avec des !!! pour masquer mes données :grin:) : https://ha!!!ry:F!!!P@www.ovh.com/nic/update?system=dyndns&hostname=ch!!!op&myip=87.88.!!!.!!!
Une solution ?
Merci
Thierry

Bonjour,

J’ai moi aussi depuis toujours cette erreur.

Erreur sur la fonction cron15 du plugin : Echec de la requête HTTP : https://@dynupdate.no-ip.com/nic/update?hostname=jeedoumou.ddns.net&myip= 429 Too Many Requests 429 Too Many Requests nginx cURL error :

Je suis sur Jeedom v4 avec la dernière version du plugin version 2020-05-12.

J’utilise le service NoIP.

Avez-vous une solution ?

Merci

Hello,

j’ai aussi le problème depuis des mois et du coup parfois ma connexion extérieur mobile ne fonctionne pas.

En plus le gros soucis de sécurité c’est que dans ce message d’erreur y’a mon mot de passe en clair !! (ici remplacé par des ****)

Erreur sur la fonction cron15 du plugin : Echec de la requête HTTP : https://...:************@www.ovh.com/nic/update?system=dyndns&hostname=…&myip= 429 Too Many Requests 429 Too Many Requests nginx cURL error :

Bonjour,

J’ai également des problèmes avec ce plugin.

J’ai plusieurs équipements dyndns (sous-domaines) de configurés sur un même domaine OVH dont certains sont désactivés (cases Activer et Visible désactivées) mais j’ai tout de même des erreurs dans les logs. On dirait qu’il traite ces équipements même lorsqu’ils sont désactivés…

Du coup, j’ai aussi des erreurs 429 Too Many Requests sur ceux activés…

J’ai également parfois l’erreur cURL error : OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to www.ovh.com:443. Si quelqu’un sait à quoi ça correspond comme erreur, je suis preneur.

Sinon, pour moi, il faudrait donc corriger les points suivants :

  • Lorsqu’un équipement dyndns est désactivé, ne pas le traiter !
  • Ajouter le choix de paramétrer la crontab à 30 min au lieu de 15 min lorsqu’on a trop d’erreurs « 429 Too Many Requests ».
  • Cacher le mot de passe dans les logs (à moins que ce soit fait exprès pour le problème avec certains caractères).

Si un dev passe par là… :slight_smile:

Cordialement,

1 « J'aime »

Hello,

Je partage ton besoin, il est vrai que 15 minutes c’est un peu court et j’ai aussi des erreurs 429 avec noip.com que j’utilise
@Loic si tu nous lit :slight_smile: un petit cron à 30 d’activable serait super !

En attendant, tu peux toujours désactiver le cron15, et faire un scénario à toi, qui lancera la commande de mise à jour quand tu le souhaite. C’est ce que je viens de faire.

Bonjour,

Effectivement et j’allais proposer le changement de code pour cela mais je vois que @Loic l’a fait en beta et en stable il y a quelques heures donc ça sera fixé bientôt :wink:

2 « J'aime »

Salut,

Doit y avoir un bug quelque part, d’après la doc la mise à jour est censé se faire que si l’IP a changée, alors que j’ai l’impression que l’update se fait systématiquement toutes les 15min.
J’ai toutes les 15 min une erreur ’’Too many requests’ chez OVH.

1 « J'aime »

Bonjour,

J’ai vérifié sur ma version du plugin modifiée pour IPv6. Pour NOIP, la mise à jour ne s’effectue que lorsqu’il y a un changement d’adresse IP. Le cron15 est pourtant bien appelé toutes les 15 minutes.
J’ai rajouté dans le code des informations de log. Il n’y en a quasi pas en standard et rien qui permette de vérifié les mise à jours.

Voici un bout de code pour remplacer la fonction cron15 dans le fichier plugin/dyndns/core/class/dyndns.class.php
Cette modification permet d’avoir un log de l’adresse IP connue dans Jeedom, de l’adresse IP juste récupérée.
Le log indique qu’il fait la mise à jour.

	public static function cron15($_eqLogic_id = null, $_force = false) {
		if ($_eqLogic_id == null) {
			$eqLogics = self::byType('dyndns',true);
		} else {
			$eqLogics = array(self::byId($_eqLogic_id));
		}
		$current_externalIP = self::getExternalIP();
		foreach ($eqLogics as $eqLogic) {
			$externalIP = $eqLogic->getCmd(null, 'externalIP');
			if (!is_object($externalIP)) {
				continue;
			}
			$ip = $externalIP->execCmd();
			if ($_force || $ip != $externalIP->formatValue($current_externalIP)) {
				log::add('dyndns','debug','IP sauvee: ' .$ip. ', IP courante: ' . $externalIP->formatValue($current_externalIP) );
				$externalIP->setCollectDate('');
				$externalIP->event($current_externalIP);
				log::add('dyndns','debug','Mise à jour de l\'adresse IP:' );
				$eqLogic->updateIP();
			}
		}
	}

Il faut évidement mettre le niveau de log de dyndns sur debug.

Effectivement je confirme que les équipements désactivés ne sont plus traités.

Par contre, comme Vincent_Robert, j’ai toujours beaucoup d’alerte Too many requests chez OVH…

J’ai eu seulement 2 fois l’erreur suivante :

Erreur sur la fonction cron15 du plugin : Echec de la requête HTTP : http://myip.dnsomatic.com/ cURL error : Resolving timed out after 8000 milliseconds

Donc effectivement, je pense qu’il est censé vérifier si l’ip est la même.

Je vais ajouter le code de henribi pour creuser le problème…

Bonjour,
Tu peux également valider manuellement la requète effectuée vers OVH
L’url est celle-ci

https://ovhuser:ovhpassword@www.ovh.com/nic/update?system=dyndns&hostname=yourhostname&myip=yourIP

Tu remplaces ovhuser, ovhpassword par les valeurs de ton compte ovh. Yourhostname est le nom de ton hostname connu par ovh. Enfin yourIP est l’adresse externe de installation.
Tu peux l’obtenir avec l’url http://checkip.dyndns.com/

Bonjour,

Pour info, il y a eu une mise à jour du plugin hier qui semble corriger l’erreur de 429 Too Many Requests.

A suivre…

Salut même souci de mon côté avec OVH depuis longtemps. Ce qui m’embête c’est que les notifs apparaissent avec mon code en clair… et que les notifs s’affichent sur les comptes invités… Gros soucis!

Concernant la MaJ elle est en bêta? Je n’ai rien eu de mon côté.

Non, elle est en stable :

Pour l’histoire du mot de passe en clair, effectivement ce n’est pas super pour la sécurité… Après comme indiqué plus haut, je ne sais pas si c’est fait exprès où non. Le mieux serait de le cacher par défaut et en clair en mode debug…

Oui je l’ai eu aujourd’hui en MaJ, et pour l’instant plus de souci d’erreur 429! TOP!