Пример #1
0
    def test_export(self) -> None:
        # Seems the format of this may need discussion
        ipf = lt.ip_filter()
        self.assertEqual(ipf.export_filter(), "something")

        ipf = lt.ip_filter()
        ipf.add_rule("0.0.0.0", "0.255.255.255", 123)
        ipf.add_rule("::", "::ffff", 456)
        self.assertEqual(ipf.export_filter(), "something")
Пример #2
0
 def update_ip_filter(self, lt_session, ip_addresses):
     self._logger.debug('Updating IP filter %s', ip_addresses)
     ip_filter = lt.ip_filter()
     ip_filter.add_rule('0.0.0.0', '255.255.255.255', 1)
     for ip in ip_addresses:
         ip_filter.add_rule(ip, ip, 0)
     lt_session.set_ip_filter(ip_filter)
Пример #3
0
    def test_empty(self) -> None:
        ipf = lt.ip_filter()
        self.assertEqual(ipf.access("0.1.2.3"), 0)
        self.assertEqual(ipf.access("::123"), 0)

        self.assertEqual(
            export(ipf),
            (
                [("0.0.0.0", "255.255.255.255")],
                [("::", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")],
            ),
        )
Пример #4
0
    def test_export(self) -> None:
        ipf = lt.ip_filter()
        self.assertEqual(
            export(ipf),
            (
                [("0.0.0.0", "255.255.255.255")],
                [("::", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")],
            ),
        )

        ipf = lt.ip_filter()
        ipf.add_rule("0.0.0.0", "0.255.255.255", 123)
        ipf.add_rule("::", "::ffff", 456)
        self.assertEqual(
            export(ipf),
            (
                [("0.0.0.0", "0.255.255.255"), ("1.0.0.0", "255.255.255.255")],
                [
                    ("::", "::ffff"),
                    ("::1:0", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"),
                ],
            ),
        )
Пример #5
0
    def test_with_rule_ip4(self) -> None:
        ipf = lt.ip_filter()
        ipf.add_rule("0.0.0.0", "0.255.255.255", 123)
        self.assertEqual(ipf.access("0.1.2.3"), 123)
        self.assertEqual(ipf.access("1.2.3.4"), 0)
        self.assertEqual(ipf.access("::123"), 0)

        self.assertEqual(
            export(ipf),
            (
                [("0.0.0.0", "0.255.255.255"), ("1.0.0.0", "255.255.255.255")],
                [("::", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")],
            ),
        )
Пример #6
0
    def test_export(self):

        f = lt.ip_filter()
        self.assertEqual(f.access('1.1.1.1'), 0)
        f.add_rule('1.1.1.1', '1.1.1.2', 1)
        self.assertEqual(f.access('1.1.1.0'), 0)
        self.assertEqual(f.access('1.1.1.1'), 1)
        self.assertEqual(f.access('1.1.1.2'), 1)
        self.assertEqual(f.access('1.1.1.3'), 0)
        exp = f.export_filter()
        self.assertEqual(exp, ([
            ('0.0.0.0', '1.1.1.0'), ('1.1.1.1', '1.1.1.2'),
            ('1.1.1.3', '255.255.255.255')
        ], [('::', 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff')]))
Пример #7
0
    def set_whitelist_filter(self, whitelisted):
        """Set an IP whitelist so that the torrent client will ONLY seed (and
        download from) those IPs.
        This is to prevent seeding to everyone if you only want to seed to your
        seedbox.
        """

        blocked = 1  # From include/libtorrent/ip_filter.hpp
        unblocked = 0

        filter_bt = libtorrent.ip_filter()
        filter_bt.add_rule('0.0.0.0', '255.255.255.255', blocked)
        try:
            for addr in whitelisted:
                filter_bt.add_rule(addr, addr, unblocked)
        except RuntimeError:
            raise Exception('A bad IP was passed as a whitelist filter!')

        self.session.set_ip_filter(filter_bt)
Пример #8
0
 def test_empty(self) -> None:
     ipf = lt.ip_filter()
     self.assertEqual(ipf.access("0.1.2.3"), 0)
     self.assertEqual(ipf.access("::123"), 0)
Пример #9
0
 def test_with_rule_ip6(self) -> None:
     ipf = lt.ip_filter()
     ipf.add_rule("::", "::ffff", 123)
     self.assertEqual(ipf.access("::123"), 123)
     self.assertEqual(ipf.access("1.2.3.4"), 0)
     self.assertEqual(ipf.access("::1:0"), 0)
Пример #10
0
 def test_with_rule_ip4(self) -> None:
     ipf = lt.ip_filter()
     ipf.add_rule("0.0.0.0", "0.255.255.255", 123)
     self.assertEqual(ipf.access("0.1.2.3"), 123)
     self.assertEqual(ipf.access("1.2.3.4"), 0)
     self.assertEqual(ipf.access("::123"), 0)
Пример #11
0
 def test_peer_class_ip_filter(self):
     s = lt.session({'enable_dht': False})
     s.set_peer_class_type_filter(lt.peer_class_type_filter())
     s.set_peer_class_filter(lt.ip_filter())
Пример #12
0
 def test_peer_class_ip_filter(self):
     s = lt.session(settings)
     s.set_peer_class_type_filter(lt.peer_class_type_filter())
     s.set_peer_class_filter(lt.ip_filter())
Пример #13
0
	def test_peer_class_ip_filter(self):
		s = lt.session({'enable_dht': False})
		s.set_peer_class_type_filter(lt.peer_class_type_filter())
		s.set_peer_class_filter(lt.ip_filter())
Пример #14
0
 def test_peer_class_ip_filter(self):
     s = lt.session(settings)
     s.set_peer_class_type_filter(lt.peer_class_type_filter())
     s.set_peer_class_filter(lt.ip_filter())