def containers_ip(self, ip): """ip is unicode or IPv4Address object""" if isinstance(ip, basestring): try: ip = IPv4Address(ip) except AddressValueError: return False return rds.sismember(self.storekey, int(ip))
def acquire_specific_ip(self, ip_str): """take a specific IP from network""" try: ip = ip_address(ip_str) except ValueError: return None if rds.sismember(self.storekey, ip._ip): rds.srem(self.storekey, ip._ip) return IP.create(ip._ip, self)
def add_ip(self, ip): if isinstance(ip, basestring): try: ip = IPv4Address(ip) except AddressValueError: return False ipnum = int(ip) if rds.sismember(self.gatekey, ipnum): rds.srem(self.gatekey, ipnum) rds.sadd(self.storekey, ipnum) return True