Browse Source

добавил манагер для получения трафа по ip

devel
bashmak 9 years ago
parent
commit
f113f3bc6a
  1. 17
      statistics/models.py

17
statistics/models.py

@ -1,17 +1,32 @@
import math import math
from datetime import datetime, timedelta
from django.db import models from django.db import models
from django.utils import timezone from django.utils import timezone
from mydefs import MyGenericIPAddressField from mydefs import MyGenericIPAddressField
from .fields import UnixDateTimeField from .fields import UnixDateTimeField
class StatManager(models.Manager):
def traffic_by_ip(self, ip):
# ip = IPv4Address(ip)
traf = self.filter(ip=ip, octets__gt=524288)[0]
now = datetime.now()
if traf.cur_time < now - timedelta(minutes=5):
# значит трафа небыло больше 5 минут
return False, traf
else:
return True, traf
class StatElem(models.Model): class StatElem(models.Model):
cur_time = UnixDateTimeField(primary_key=True) cur_time = UnixDateTimeField(primary_key=True)
ip = MyGenericIPAddressField() ip = MyGenericIPAddressField()
octets = models.PositiveIntegerField(default=0) octets = models.PositiveIntegerField(default=0)
packets = models.PositiveIntegerField(default=0) packets = models.PositiveIntegerField(default=0)
objects = StatManager()
@staticmethod @staticmethod
def percentile(N, percent, key=lambda x:x): def percentile(N, percent, key=lambda x:x):
""" """

Loading…
Cancel
Save