Инкапсуляция функции 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 по соображениям безопасности. Любая помощь будет очень признательна, поскольку я новичок в таких вещах, но готов учиться!

Вернуться на верх