IPAddressFixup : global

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 5 minutes de lecture
  • L’include de script IPAddressFixup fournit des méthodes qui garantissent qu’aucun autre appareil n’a la même adresse IP, une fois qu’un appareil a été détecté avec succès. Si des doublons sont trouvés, le champ Adresse IP est effacé.

    À utiliser avec n’importe quel script de découverte côté serveur pour valider les adresses IP.

    IPAddressFixup : dedupe(String tableName, String ip)

    Supprime les doublons de l’adresse IP spécifiée dans la table spécifiée.

    Une fois qu’un appareil a été détecté, vous pouvez utiliser la méthode dedupe() pour supprimer les adresses IP en double.

    Tableau 1. Paramètres
    Nom Type Description
    tableName Chaîne Table pour vérifier les doublons.
    ip Chaîne Adresse IP à vérifier.
    Tableau 2. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment utiliser dedupe() dans un script en arrière-plan pour supprimer les adresses IP en double pour l’adresse IP spécifiée dans la table cmdb_ci_hardware.

    var grDiscovery=new GlideRecord("discovery_device_history");
    grDiscovery.addQuery('sys_id','<sys id of the record>'); // sys_id of the device discovery_device_history
    grDiscovery.query();
    if(grDiscovery.next())
      {
        var fx=new IPAddressFixup(grDiscovery.cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference 
        fx.dedupe('cmdb_ci_hardware','192.161.1.1'); // Pass the IP address and table which removes duplicates of the specified IP address in the specified table.
      }

    L’exemple suivant montre comment utiliser dedupe() dans une règle métier pour supprimer les adresses IP en double pour l’adresse IP spécifiée dans la table cmdb_ci_hardware.

    (function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
      {
        var ipf = new IPAddressFixup(cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        ipf.dedupe('cmdb_ci_hardware','168.128.1.1'); // Removes duplicates of the specified IP address in the specified table.
      }
    })(current, previous);

    IPAddressFixup : dedupeAll()

    Supprime toutes les adresses IP en double des tables.

    Tableau 3. Paramètres
    Nom Type Description
    Néant
    Tableau 4. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment utiliser dedupeAll() dans un script en arrière-plan pour supprimer toutes les adresses IP en double.

    var grDiscovery=new GlideRecord("discovery_device_history"); 
    grDiscovery.addQuery('sys_id','<sys id of the record>'); // sys_id of the device discovery_device_history
    grDiscovery.query();
    if(grDiscovery.next())
    {
      var fx=new IPAddressFixup(grDiscovery.cmdb_ci); // Call script include IPAddressFixup and pass cmdb reference
      fx.dedupeAll(); //Removes all duplicate IP addresses from the tables.
    }

    L’exemple suivant montre comment utiliser dedupeAll() dans une règle métier pour supprimer toutes les adresses IP en double.

    (function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
    {
      var ipf = new IPAddressFixup(cmdb_ci); //call script include IPAddressFixup and pass cmdb reference
      ipf.dedupeAll(); //Removes all duplicate IP addresses from the tables.
    })(current, previous);

    IPAddressFixup : fix()

    Supprime toutes les adresses IP en double et garantit que l’enregistrement de ip_address parent est défini sur l’une des adresses IP de la carte d’interface réseau (NIC).

    Une fois qu’un appareil a été détecté, vous pouvez utiliser la méthode dedupe() pour supprimer les adresses IP en double pour cet appareil et définir la valeur de l’enregistrement ip_address parent.

    Tableau 5. Paramètres
    Nom Type Description
    Néant
    Tableau 6. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment utiliser fix() dans un script en arrière-plan pour supprimer les adresses IP en double et définir l’adresse IP parente.

    var grDiscovery=new GlideRecord("discovery_device_history"); 
    grDiscovery.addQuery('sys_id','<sys id of the the record>'); // sys_id of the device discovery_device_history
    grDiscovery.query();
    if(grDiscovery.next())
      {
        var fx=new IPAddressFixup(grDiscovery.cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        fx.fix(); // Remove all duplicate IP addresses and ensure that the parent ip_address record is set to one of the NIC's IP addresses.
      }

    L’exemple suivant montre comment utiliser fix() dans une règle métier pour supprimer les adresses IP en double et définir l’adresse IP parente.

    (function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
      {
        var ipf = new IPAddressFixup(cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        ipf.fix(); /// Remove all duplicate IP addresses and ensure that the parent ip_address record is set to one of the NIC's IP addresses.
      }
    })(current, previous);

    IPAddressFixup : getParentIP()

    Renvoie l’adresse IP parent pour l’appareil actuel.

    Tableau 7. Paramètres
    Nom Type Description
    Néant
    Tableau 8. Renvoie
    Type Description
    Chaîne Adresse IP parent

    L’exemple suivant montre comment utiliser getParentIP() dans un script en arrière-plan pour obtenir l’adresse IP parent.

    var grDiscovery=new GlideRecord("discovery_device_history"); // current.cmdb_ci can be used in case of Business rule on discovery_device_history table
    grDiscovery.addQuery('sys_id','<sys id of the the record>'); // sys_id of the device discovery_device_history
    grDiscovery.query();
    if(grDiscovery.next())
      {
        var fx=new IPAddressFixup(grDiscovery.cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        gs.info(fx.getParentIP()); // Display the parent IP address of the device 
      }

    Sortie :

    172.21.12.11

    L’exemple suivant montre comment utiliser getParentIP() dans une règle métier pour obtenir l’adresse IP parente.

    ((function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
      {
        var ipf = new IPAddressFixup(cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        gs.log(ipf.getParentIP()); // Log the parent IP address of the device. Located in the system logs table 
      }
    })(current, previous);

    IPAddressFixup : setParentIP(String ip)

    Définit le champ d’adresse IP parent pour le CI actuel.

    Tableau 9. Paramètres
    Nom Type Description
    ip Chaîne Adresse IP parent pour le CI actuel.
    Tableau 10. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment utiliser setParentIP() dans un script en arrière-plan pour stocker l’adresse IP parente.

    var grDiscover=new GlideRecord("discovery_device_history"); 
    grDiscover.addQuery('sys_id','a14e43b31bb4051070cb96c6b04bcb23'); // sys_id of the device in discovery_device_history table. Put your own sys_id here.
    grDiscover.query();
    if(grDiscover.next())
      {
        var fx=new IPAddressFixup(grDiscover.cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference.
        fx.setParentIP('197.111.1.1'); // Pass IP address to set as new IP on current mentioned CI.
      }

    L’exemple suivant montre comment utiliser setParentIP() dans une règle métier pour stocker l’adresse IP parente.

    ((function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
      {
        var ipf = new IPAddressFixup(cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        fx.setParentIP('195.11.1.1'); // Set the new IP address of the CI 
      }
    })(current, previous);

    IPAddressFixup : syncIP()

    Garantit que l’enregistrement de ip_address parent est défini sur l’une des adresses IP de la carte réseau ou le laisse tranquille s’il n’y avait aucune carte réseau.

    Tableau 11. Paramètres
    Nom Type Description
    Néant
    Tableau 12. Renvoie
    Type Description
    nul

    Ceci montre un exemple d’utilisation de la méthode syncIP() dans un script en arrière-plan.

    var grDevHistory=new GlideRecord("discovery_device_history");
    grDevHistory.addQuery('sys_id','a14e43b31bb4051070cb96c6b04bcb23'); // Sys_id of the device in discovery_device_history table. Put your own sys_id here.
    grDevHistory.query();
    if(grDevHistory.next())
      {
        var fx=new IPAddressFixup(grDevHistory.cmdb_ci); // Call the script include IPAddressFixup and pass cmdb reference
        fx.syncIP(); // Ensures that the parent ip_address record is set to one of the NIC's IP addresses, or leaves it alone if there were no NICs.
      }

    Ceci montre un exemple d’utilisation de la méthode syncIP() dans une règle métier.

    (function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
      {
        var ipf = new IPAddressFixup(cmdb_ci); // Call script include IPAddressFixup and pass cmdb reference
        ipf.syncIP(); // Ensures that the parent ip_address record is set to one of the NIC's IP addresses, or leaves it alone if there were no NICs.
      }
    })(current, previous);