Modification d'expression régulière

jonigood Messages postés 481 Statut Membre -  
jonigood Messages postés 481 Statut Membre -
Bonjour à tous CCMien et merci de me lire

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

Résumé de la discussion

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.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Il s'agit bien des 5 ip que tu as affichées ou c'est aléatoire?

    lami20j
    0
  2. jonigood Messages postés 481 Statut Membre 28
     
    Salut :-)

    oui 5 IP qui ne se suive pas comme l'exemple plus haut
    0
  3. jonigood Messages postés 481 Statut Membre 28
     
    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 !!
    0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jonigood Messages postés 481 Statut Membre 28
     
    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


    0
  7. jonigood Messages postés 481 Statut Membre 28
     
    Je pense que pour que cette regexp fonctionne il faut un fichier "IP" ou stocker les IP et la c'est pas le cas ....
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Tu utilises un fichiers de configuration qui contient les IP dans une variable et les IP cherchées sont seulement les 5 que tu as définies.

      La regex devrait être adaptée à ton cas en effet, mais il faut connaître un peu mieux ton cas.
      0
  8. jonigood Messages postés 481 Statut Membre 28
     
    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}


    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      pour une rotation de 9 IP il a été transformé comme ceci :

      Par qui?
      0
  9. jonigood Messages postés 481 Statut Membre 28
     
    par google

    c'est une astuce que j'ai trouver sur deux ou trois forums et qui marche bien
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Alors je ne comprends pas ce que tu veux ;-(
      0
  10. jonigood Messages postés 481 Statut Membre 28
     
    :-(

    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 ;-)
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
      0
  11. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Essai

    interface = 158\\.3[23]\\.1(7|63)\\.(11[258]|23[24])
    0
  12. jonigood Messages postés 481 Statut Membre 28
     
    WAW

    je teste et reviens au news de suite
    0
  13. jonigood Messages postés 481 Statut Membre 28
     
    158\.3[23]\.1(7|63)\.(11[258]|23[24])" is not a valid IP address for the "interface" option for remote_smtp transport

    :-(
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Affiche le résultat de
      grep interface ton_fichier_config_exim
      0
  14. jonigood Messages postés 481 Statut Membre 28
     
    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}
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Je ne peux plus rester.
      On va continuer demain si ça ne te dérange pas.


      fichier modifier avec la regexp trouver sur un forum :
      En tous cas ce n'est une regex mais string expansion.
      Essai la regex avec un seul slash.
      0
    2. jonigood Messages postés 481 Statut Membre 28
       
      ;-) thanks
      0
    3. jonigood Messages postés 481 Statut Membre 28
       
      interface = 158\\.3[23]\\.1(7|63)\\.(11[258]|23[24])
      a quel moment un seul slash ?

      a demain ;-)
      0
    4. jonigood Messages postés 481 Statut Membre 28
       
      petit UP cordial....
      0