62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
|
#!/usr/bin/env python
|
||
|
# Tor Scan - Developed by acidvegas in Python (https://git.acid.vegas/proxytools)
|
||
|
|
||
|
'''
|
||
|
|
||
|
This is a work in progress for now...
|
||
|
|
||
|
'''
|
||
|
|
||
|
import json
|
||
|
|
||
|
try:
|
||
|
import stem.descriptor.remote
|
||
|
except ImportError:
|
||
|
raise SystemExit('missing required library \'stem\' (https://pypi.org/project/stem/)')
|
||
|
|
||
|
tor_map = list()
|
||
|
tor_exit_map = list()
|
||
|
|
||
|
for relay in stem.descriptor.remote.get_server_descriptors().run():
|
||
|
_map = {
|
||
|
'nickname' : relay.nickname,
|
||
|
'fingerprint' : relay.fingerprint,
|
||
|
'published' : relay.published,
|
||
|
'address' : relay.address,
|
||
|
'or_port' : relay.or_port,
|
||
|
'socks_port' : relay.socks_port,
|
||
|
'dir_port' : relay.dir_port,
|
||
|
'platform' : relay.platform,
|
||
|
'tor_version' : relay.tor_version,
|
||
|
'operating_system' : relay.operating_system,
|
||
|
'uptime' : relay.uptime,
|
||
|
'contact' : relay.contact,
|
||
|
'exit_policy' : relay.exit_policy,
|
||
|
'exit_policy_v6' : relay.exit_policy_v6,
|
||
|
'bridge_distribution' : relay.bridge_distribution,
|
||
|
'family' : relay.family,
|
||
|
'average_bandwidth' : relay.average_bandwidth,
|
||
|
'burst_bandwidth' : relay.burst_bandwidth,
|
||
|
'observed_bandwidth' : relay.observed_bandwidth,
|
||
|
'link_protocols' : relay.link_protocols,
|
||
|
'circuit_protocols' : relay.circuit_protocols,
|
||
|
'is_hidden_service_dir' : relay.is_hidden_service_dir,
|
||
|
'hibernating' : relay.hibernating,
|
||
|
'allow_single_hop_exits' : relay.allow_single_hop_exits,
|
||
|
'allow_tunneled_dir_requests' : relay.allow_tunneled_dir_requests,
|
||
|
'extra_info_cache' : relay.extra_info_cache,
|
||
|
'extra_info_digest' : relay.extra_info_digest,
|
||
|
'extra_info_sha256_digest' : relay.extra_info_sha256_digest,
|
||
|
'eventdns' : relay.eventdns,
|
||
|
'ntor_onion_key' : relay.ntor_onion_key,
|
||
|
'or_addresses' : relay.or_addresses,
|
||
|
'protocols' : relay.protocols
|
||
|
}
|
||
|
if relay.exit_policy.is_exiting_allowed():
|
||
|
tor_exit_map.append(_map)
|
||
|
else:
|
||
|
tor_map.append(_map)
|
||
|
with open('tor.out', 'w') as fd:
|
||
|
json.dump(tor_map, fd)
|
||
|
with open('tor.exit.out', 'w') as fd:
|
||
|
json.dump(tor_exit_map, fd)
|