Esempio n. 1
0
    def get(self):
        page = urlfetch.fetch(self.url, deadline=60)
        if page.status_code != 200:
            logging.error(self.tag + " returned: " + str(blist.status_code))
            self.response.headers['Content-Type'] = 'text/plain'
            self.response.write(self.tag + " returned: " +
                                str(blist.status_code))
            return
        ltree = lxml.etree.fromstring(page.content)

        nets = set()

        ipv4 = ltree.xpath(
            "/products/product[@name='SPO']/addresslist[@type='IPv4']/address")
        for a in ipv4:
            addr = address.create_address(a.text)
            if addr == None:
                continue
            if type(addr) != types.ListType:
                addr = [addr]
            for a in addr:
                if not a in nets:
                    nets.add(a)
        nets = address.optimize_list([x for x in nets])

        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write(self.tag + " list\n" + "# entries: " +
                            str(len(nets)) + "\n\n" +
                            '\n'.join(map(repr, nets)))
        dblist = BlockList(tag=self.tag, iplist=map(repr, nets))
        dblist.put()
        memcache.delete("l" + self.tag)
        memcache.delete("t" + self.tag)
        logging.info(self.tag + " refreshed")
Esempio n. 2
0
    def get(self):
        page = urlfetch.fetch(self.url, deadline=60)
        if page.status_code != 200:
            logging.error(self.tag+" returned: "+str(blist.status_code))
            self.response.headers['Content-Type'] = 'text/plain'
            self.response.write(self.tag+" returned: "+str(blist.status_code))
            return
        ltree = lxml.etree.fromstring(page.content)

        nets = set()

        ipv4 = ltree.xpath("/products/product[@name='SPO']/addresslist[@type='IPv4']/address")
        for a in ipv4:
            addr = address.create_address(a.text)
            if addr == None:
                continue
            if type(addr) != types.ListType:
                addr = [addr]
            for a in addr:
                if not a in nets:
                    nets.add(a)
        nets = address.optimize_list([ x for x in nets ])
        
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write(self.tag+" list\n"+"# entries: "+str(len(nets))+"\n\n"+'\n'.join(map(repr, nets)))
        dblist = BlockList(tag=self.tag, iplist=map(repr, nets))
        dblist.put()
        memcache.delete("l"+self.tag)
        memcache.delete("t"+self.tag)
        logging.info(self.tag+" refreshed")
Esempio n. 3
0
 def get(self):
     """Convert ip list retrieved from self.url into a list of IPs/NETs/RANGEs
     using address.optimize_list. The resulting iplist is then stored in the 
     GAE DataStore with tag self.tag. Memcache entry for the iplist is invalidated.
     """
     blist = urlfetch.fetch(self.url, deadline=60)
     if blist.status_code != 200:
         logging.error(self.tag+" returned: "+str(blist.status_code))
         self.response.headers['Content-Type'] = 'text/plain'
         self.response.write(self.tag+" returned: "+str(blist.status_code))
         return
     nets = set()
     for l in blist.content.splitlines():
         l = l.strip()
         if l == None or len(l) == 0:
             continue
         addr = self.handle_line(l)
         if addr == None:
             continue
         if type(addr) != types.ListType:
             addr = [addr]
         for a in addr:
             if not a in nets:
                 nets.add(a)
     nets = address.optimize_list([ x for x in nets ])
     
     self.response.headers['Content-Type'] = 'text/plain'
     self.response.write(self.tag+" list\n"+"# entries: "+str(len(nets))+"\n\n"+'\n'.join(map(repr, nets)))
     dblist = BlockList(tag=self.tag, iplist=map(repr, nets))
     dblist.put()
     memcache.delete("l"+self.tag)
     memcache.delete("t"+self.tag)
     logging.info(self.tag+" refreshed")
Esempio n. 4
0
 def get(self):
     """Convert ip list retrieved from self.url into a list of IPs/NETs/RANGEs
     using address.optimize_list. The resulting iplist is then stored in the 
     GAE DataStore with tag self.tag. Memcache entry for the iplist is invalidated.
     """
     blist = urlfetch.fetch(self.url, deadline=60)
     if blist.status_code != 200:
         logging.error(self.tag+" returned: "+str(blist.status_code))
         self.response.headers['Content-Type'] = 'text/plain'
         self.response.write(self.tag+" returned: "+str(blist.status_code))
         return
     nets = set()
     for l in blist.content.splitlines():
         l = l.strip()
         if l == None or len(l) == 0:
             continue
         addr = self.handle_line(l)
         if addr == None:
             continue
         if type(addr) != types.ListType:
             addr = [addr]
         for a in addr:
             if not a in nets:
                 nets.add(a)
     nets = address.optimize_list([ x for x in nets ])
     
     self.response.headers['Content-Type'] = 'text/plain'
     self.response.write(self.tag+" list\n"+"# entries: "+str(len(nets))+"\n\n"+'\n'.join(map(repr, nets)))
     dblist = BlockList(tag=self.tag, iplist=map(repr, nets))
     dblist.put()
     memcache.delete("l"+self.tag)
     memcache.delete("t"+self.tag)
     logging.info(self.tag+" refreshed")