Инкапсуляция функции pythonping во фреймворке DJango
Я создал веб-приложение с использованием фреймворка Django, которое позволит мне периодически пинговать определенные IP-адреса, чтобы узнать, находятся ли они в сети. Для настройки приложения требуются разные IP в разных группах. Когда я добавил функцию python ping в свою модель, она говорит, что IP недоступны.
Ниже представлен мой models.py для проекта. Как вы можете видеть, я включил функцию pythonping ping, чтобы попытаться пропинговать указанные IP, но, похоже, это не работает.
from cgitb import text
from ipaddress import ip_address
from django.db import models
from pythonping import ping
#import macaddress
# Create your models here.
class WS_Building_location(models.Model):
Building = models.CharField(max_length=200)
#date_added = models.DateTimeField(auto_now_add =True)
class Meta:
verbose_name_plural = 'Buildings'
def __str__(self):
return self.Building
class WS_address(models.Model):
"""Wyrestorm address"""
building = models.ForeignKey(WS_Building_location, on_delete=models.CASCADE)
ws_ip = models.GenericIPAddressField()
#mac_address = models.macaddress()
date_added = models.DateTimeField(auto_now_add=True)
ipstr = str(ws_ip)
ip_ping = models.TextField(ping('ipstr', verbose = False))
class Meta:
verbose_name_plural = 'addresses'
def __str__(self):
return self.ws_ip
Я прочитал, что модуль pythonping должен иметь доступ root, чтобы создавать необработанные пакеты, которые он использует в качестве пинга, и не рекомендуется, чтобы django был root по соображениям безопасности. Любая помощь будет очень признательна, поскольку я новичок в таких вещах, но готов учиться!