54 lines
1.6 KiB
Python
Executable File
54 lines
1.6 KiB
Python
Executable File
#!/usr/local/bin/python3.sh
|
|
# -*- mode: python; indent-tabs-mode: nil; py-indent-offset: 4; coding: utf-8 -*-
|
|
__doc__ = """List Outdated Relays
|
|
|
|
Time marches on. Tor makes new releases, and at some point needs to drop
|
|
support for old ones. Below is the script we used on ticket 9476 to reach out
|
|
to relay operators that needed to upgrade.
|
|
|
|
https://stem.torproject.org/tutorials/examples/outdated_relays.html
|
|
"""
|
|
|
|
import sys
|
|
import logging
|
|
|
|
from stem.descriptor.remote import DescriptorDownloader
|
|
from stem.version import Version
|
|
|
|
from tor_controller import set_socks_proxy
|
|
|
|
LOG = logging.getLogger()
|
|
|
|
def iMain():
|
|
set_socks_proxy()
|
|
downloader = DescriptorDownloader(use_mirrors=True)
|
|
count, with_contact = 0, 0
|
|
elts = downloader.get_server_descriptors()
|
|
LOG.info(f"Checking for outdated relays len server_descriptors={len(list(elts))}...")
|
|
print("")
|
|
|
|
for desc in elts:
|
|
if desc.tor_version < Version('0.2.3.0'):
|
|
count += 1
|
|
|
|
if desc.contact:
|
|
LOG.info(' %-15s %s' % (desc.tor_version, desc.contact.decode("utf-8", "replace")))
|
|
with_contact += 1
|
|
|
|
print("")
|
|
LOG.info("%i outdated relays found, %i had contact information" % (count, with_contact))
|
|
# http://vt5hknv6sblkgf22.onion/tutorials/examples/outdated_relays.htmlhttp://vt5hknv6sblkgf22.onion/tutorials/examples/outdated_relays.html
|
|
return 0
|
|
|
|
if __name__ == '__main__':
|
|
LOG.setLevel(logging.INFO)
|
|
try:
|
|
l = iMain(sys.argv[1:])
|
|
if l: print(l)
|
|
i = 0
|
|
except KeyboardInterrupt as e:
|
|
i = 0
|
|
except Exception as e:
|
|
i = 1
|
|
sys.exit(i)
|