Modification d'expression régulière
jonigood Messages postés 481 Statut Membre -
J'ai un souci avec une expression régulière ( encore :-( )
je recherche un peu d'aide si possible.
J'explique le problème :
j'ai actuellement une expression régulière utiliser dans un fichier de conf exim4 pour faire tourner un serveur mail, cette expression régulière fait en sorte d'envoyer chaque mail avec une ip différente (9 IP disponible au total)
La voici :
xxx.xxx.xxx.3${eval:${substr{-2}{1}{$tod_zulu}}%7+0}
il prend donc l'ip xxx.xxx.xxx.30 jusque xxx.xxx.xxx.39
j'aimerais "simplement" réduire le nombre d'ip a 5, le problème c'est que cette fois les 5 ip ne ce suives pas, voici un exemple :
158.33.17.232
158.33.17.234
158.32.163.112
158.32.163.115
158.32.163.118
Quelqu'un aurait une solution ?
lami20j t'es dans le coin ?
Merci d'avance pour toute intervention
Cordialement
Jhoni
13 réponses
Une expression régulière utilisée dans la configuration d'Exim4 permettait d'envoyer chaque mail depuis une IP différente sur un pool de 9 adresses, mais l'utilisateur souhaite réduire ce pool à 5 IP non consécutives. Des échanges soulignent des difficultés comme l'erreur main option 'interface unknown' dans /var/lib/exim4/config.autogenerated.tmp et la vérification de l'expansion d'une chaîne plutôt que d'une vraie regex. Plusieurs messages expliquent que $tod_zulu et substr jouent un rôle dans l'obtention de l'index IP et qu'il s'agit d'une expansion de chaîne, pas d'une construction regex. D'autres remarques demandent le fichier complet et indiquent d'examiner les logs mainlog et paniclog pour clarifier le diagnostic et tester une approche alternative avec une seule barre oblique.
-
Salut,
Il s'agit bien des 5 ip que tu as affichées ou c'est aléatoire?
lami20j -
Salut :-)
oui 5 IP qui ne se suive pas comme l'exemple plus haut -
les 5 IP dans l'exemple plus haut sont en faite les bonnes IP mise a part les 3 premiers chiffres (158) de départ afin de masquer les IP sur le forum
petit a petit !! -
Salut,
L'exemple en dur
lami20j@debian-acer:~$ cat ip 73.25.100.32 158.33.17.232 158.33.17.234 158.32.163.112 158.32.163.115 158.32.163.118 192.168.0.1 10.0.0.200 lami20j@debian-acer:~$ egrep -o '158\.3[23]\.1(7|63)\.(11[258]|23[24])' ip 158.33.17.232 158.33.17.234 158.32.163.112 158.32.163.115 158.32.163.118
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut lami20j
Je viens de testé et je reçois :
"'158.3[23].1(7|63).(11[258]|23[24])'" is not a valid IP address for the "interface" option for remote_smtp transport
-
Je pense que pour que cette regexp fonctionne il faut un fichier "IP" ou stocker les IP et la c'est pas le cas ....
-
a mon avis et ce n'est que mon avis...
ce fichier de conf d'exim4 cherche la variable "interface" qui doit suivre d'une adresse IP comme l'exemple plus haut.
Normalement le fichier de conf d'origine est comme ceci :
interface = xxx.xxx.xxx.xxx
pour une rotation de 9 IP il a été transformé comme ceci :
interface = xxx.xxx.xxx.3${eval:${substr{-2}{1}{$tod_zulu}}%7+0}
-
par google
c'est une astuce que j'ai trouver sur deux ou trois forums et qui marche bien -
:-(
J'essaye de faire plus simple.
Cette ligne dans le fichier de conf d'exim4 permet de stipuler l'adresse IP du serveur envoyeur du mail :interface = xxx.xxx.xxx.xxx
Afin de pouvoir envoyer des mails depuis plusieurs IP on la modifie comme ceci :interface = xxx.xxx.xxx.3${eval:${substr{-2}{1}{$tod_zulu}}%7+0}
Je pense que cette ligne fait un décompte en ordre croissant ou bien un tri aléatoire et envoie chaque mail avec une IP différente comme ceci :1er mail envoyer depuis l'IP : xxx.xxx.xxx.30 2em mails envoyer depuis l'IP : xxx.xxx.xxx.31 3em mails envoyer depuis l'IP : xxx.xxx.xxx.32
et ainsi de suite jusqu'au 10em mails qui sera donc envoyer avec l'IP xxx.xxx.xxx.39
Le but est d'envoyer les mails comme ceci :1er mail envoyer depuis l'IP : 158.33.17.232 2em mails envoyer depuis l'IP : 158.33.17.234 3em mails envoyer depuis l'IP : 158.32.163.112 4em mails envoyer depuis l'IP : 158.32.163.115 5em mails envoyer depuis l'IP : 158.32.163.118
J'espère que c'est plus claire comme ça.
Merci ;-)-
Je pense que cette ligne fait un décompte en ordre croissant ou bien un tri aléatoire et
Il ne faut pas penser, mais s'informer ;-)
http://www.exim.org/exim-html-current/doc/html/spec_html/ch11.html
$tod_zulu This variable contains the UTC date and time in "Zulu" format, as specified by ISO 8601, for example: 20030221154023Z.
Prenons la valeur en gras
${substr{-2}{1}{$tod_zulu}}%7+0} =>
$tod_zulu = 20030221154023Z
${substr{-2}{1}{20030221154023Z} donne 3 (on commence à partir de la fin -2 et la longueur 1
3%7 égal 3
3 + 0 = 3
ensuite eval c'est pour convertir 3 en numérique
Donc ce n'est pas un tri mais une recherche d'IP par rapport au time donné par la variable $tod_zulu
-
-
Essai
interface = 158\\.3[23]\\.1(7|63)\\.(11[258]|23[24])
-
-
158\.3[23]\.1(7|63)\.(11[258]|23[24])" is not a valid IP address for the "interface" option for remote_smtp transport
:-( -
fichier modifier avec ta regexp :
root@servm:/etc/exim4# grep interface exim4.conf.template # listen on all all interfaces? local_interfaces = MAIN_LOCAL_INTERFACES # where you define the interface to your scanner. This example is typical # For spam scanning, there is a similar option that defines the interface to interface = 158\\.3[23]\\.1(7|63)\\.(11[258]|23[24])
fichier d'origine :# listen on all all interfaces? local_interfaces = MAIN_LOCAL_INTERFACES # where you define the interface to your scanner. This example is typical # For spam scanning, there is a similar option that defines the interface to interface=158.33.17.232
fichier modifier avec la regexp trouver sur un forum :# listen on all all interfaces? local_interfaces = MAIN_LOCAL_INTERFACES # where you define the interface to your scanner. This example is typical # For spam scanning, there is a similar option that defines the interface to interface=105.230.233.3${eval:${substr{-2}{1}{$tod_zulu}}%7+0}-
-
-
-
-
Salut,
Je ne t'ai pas oublié ;-) mais je n'ai pas eu le temps de regarder.
Ce message tu l'obtiens à quel moment, au redémarrage du exim ?
-