Quand j'ai entendu le séminaire "Zabbix entièrement automatique" à OSC2015Tokyo / Spring, il a fallu beaucoup de temps pour enregistrer NetArc Discovery dans une large gamme, donc j'ai entendu qu'il vaut mieux s'enregistrer séparément ... Mais, "Il est difficile de calculer la plage et de la diviser" ... Donc, après avoir étudié Python, j'ai réfléchi à la logique de diviser / 22 ou / 23 en 24 unités en spécifiant la plage IP.
C'est la logique de diviser l'IP. Puisqu'il s'agit d'un test logique, les noms de variables sont appropriés. (excuse) C'est en désordre-A (^ _ ^;
import sys
io = sys.argv[1]
tmp = io.split("/")
ip = tmp[0]
prefix = tmp[1]
tmp = ip.split(".")
o1 = tmp[0]
o2 = tmp[1]
o3 = tmp[2]
o4 = tmp[3]
sum = (int(o1) << 24 | int(o2) << 16 | int(o3) << 8 | int(o4) ) & 0xFFFFFF00
sum = sum >> (32-int(prefix))
sum = sum << (32-int(prefix))
for i in range(0, 2 << (24 - int(prefix) - 1)):
a = sum | i<<8
o1 = (a & 0xFF000000) >> 24
o2 = (a & 0x00FF0000) >> 16
o3 = (a & 0x0000FF00) >> 8
o4 = 0
a = str(o1) + "." + str(o2) + "." + str(o3) + "." + str(o4) + "/24"
print a
Résultat d'exécution
Python sous Windows ... A (^ _ ^;
Après cela, vous pouvez enregistrer l'IP divisée à l'aide de l'API Zabbix ...
L'exécution de l'API Zabbix en Python est facile avec l'article ci-dessous. [Essayez l'API ZABBIX avec Pyhton](http://www.zumwalt.info/blog/2012/11/pyhton%E3%81%A7zabbix-api%E3%82%92%E8%A7%A6%E3 % 81% A3% E3% 81% A6% E3% 81% BF% E3% 82% 8B /)
Comme mentionné dans l'article, j'ai également utilisé pycurl au début, mais je suis passé à urllib2. A (^ _ ^;
Lorsque vous utilisez l'API Zabbix en Python, il est pratique de créer xxx.json pour la requête. Si vous lisez le fichier avec json.load, remplacez l'authentification des paramètres par divers paramètres et lancez-le, vous n'avez pas à écrire toutes les requêtes dans le programme comme excuse, ce qui est pratique.
Recommended Posts