현재 DSL 연결을 위해 작동하는 DSLAM 관리 사이트가 있습니다. 현재 DSLAM IP 주소를 자동으로 ping하여 DSLAM 상태 업데이트를 자체적으로 수행하는 것이 일하고 싶습니다. 요청이 양호하면 boolean = True를 반환하고 그렇지 않으면 boolean = False를 저장하고 저장합니다. 지금까지는 작동하지 않으며 여기에서 어디로 가야할지 모르겠습니다.Django - Python Ping으로 모델 불리언 검사
models.py는
from django.db import models
import os,sys
class DslamManager(models.Manager):
def dslam_status(self, ip_address):
if os.system('ping' + ip_address):
dslam_status = super(DslamManager, self).get(ip_address)
dslam_status = True
dslam_status.save()
else:
dslam_status = super(DslamManager, self)
dslam_status = False
dslam_status.save()
class Location(models.Model):
location_name = models.CharField(max_length=30)
island_name = models.CharField(max_length=30)
class Meta:
ordering = ['location_name']
def __unicode__(self):
return self.location_name
class Dslam(models.Model):
dslam_name = models.CharField(max_length=32)
ip_address = models.CharField(max_length=128)
location = models.ForeignKey(Location)
notes = models.TextField(blank=True)
dslam_status = models.BooleanField()
objects = DslamManager()
class Meta:
ordering = ['location', 'id']
def __unicode__(self):
return self.dslam_name
올바른 os.system ('ping'+ ip_address)인지 확실하지 않습니다. os.system ('ping'+ ip_address)이되어서는 안됩니다. 또한 나는 [명령] (http://docs.python.org/2/library/commands.html)을 사용하여 특히 commands.getstatusoutput 메서드가 도움이된다고 생각합니다. –