{% extends "skeleton.html" %} {% block title %}Tor Relays :: {{ relay['nickname'] }}{% endblock %} {% block body %}

Home :: Relay "{{ relay['nickname'] }}"

Nickname
{{ relay['nickname']|escape }}
OR Address
{% for address in relay['or_addresses'] -%}
                {{ address }}
            {% endfor -%}
            
Contact
{% if relay['contact'] %}
{{ relay['contact']|escape }}
{% else %}
none
{% endif %}
Dir Address
{% if relay['dir_address'] %}
{{ relay['dir_address']|escape }}
{% else %}
none
{% endif %}
Exit Address
{% if relay['exit_address'] %}
{{ relay['exit_address']|escape }}
{% else %}
none
{% endif %}
Observed Bandwidth
{% if relay['observed_bandwidth'] > 1000000 %} {% set obs_bandwidth = '%s %s'|format((relay['observed_bandwidth'] / 1000000)|round(2, 'common'), 'MB/s') %} {% else %} {% set obs_bandwidth = '%s %s'|format((relay['observed_bandwidth'] / 1000)|round(2, 'common'), 'KB/s') %}{% endif %}
{{ obs_bandwidth }}
IPv4 Exit Policy Summary
{% if relay['exit_policy_summary'] -%} {%- set v4_summary = relay['exit_policy_summary'].items() -%}
{% for k, v in v4_summary -%}
                    {{ k|escape }}: {{ '\n  ' + v|join('\n  ')|escape }}
                {% endfor -%}
                
{% else -%}
none
{% endif -%}
IPv6 Exit Policy Summary
{% if relay['exit_policy_v6_summary'] -%} {%- set v6_summary = relay['exit_policy_v6_summary'].items() -%}
{% for k, v in v6_summary -%}
                    {{ k|escape }}: {{ '\n  ' + v|join('\n  ')|escape }}
                {% endfor -%}
                
{% else -%}
none
{% endif -%}
Exit Policy
{% for policy in relay['exit_policy'] -%}
                {{ policy|escape }}
            {% endfor -%}
            
{% if relay['effective_family']|length > 1 -%}
Effective Family Members (view)
{% else %}
Effective Family Members
{% endif %}
{% for e_relay in relay['effective_family'] -%}
                {% if relay['effective_family']|length > 1 -%}
                {{ e_relay|escape }}
                {% else -%}
                {{ e_relay|escape }}
                {% endif -%}
            {% endfor -%}
            
Alleged Family Members
{% if relay['alleged_family'] %}
{% for a_relay in relay['alleged_family'] -%}
                    {% if relay['alleged_family']|length > 1 -%}
                    {{ a_relay|escape }}
                    {% else -%}
                    {{ a_relay|escape }}
                    {% endif -%}
                {% endfor %}
            {% else -%}
                
none
            {% endif -%}
            
Fingerprint
{{ relay['fingerprint']|escape }}
Flags
{% for flag in relay['flags'] %} {% if flag != 'StaleDesc' %} {{ flag|escape }} {{ flag|escape }} {% endif %} {% endfor %}
Host Name
{% if relay['verified_host_names'] -%}
{{ relay['verified_host_names']|join('\n')|escape }}
{% elif relay['unverified_host_names'] -%}
{{ relay['unverified_host_names']|join('\n')|escape }}
{% else -%}
none
{% endif -%}
Country
{% if relay['country'] -%} {{ relay['country_name']|escape }} {{ relay['country_name']|escape }} {% else -%} unknown {% endif %}
AS Number
{% if relay['as'] %} {{ relay['as']|escape }} {% else %} unknown {% endif %}
AS Name
{% if relay['as_name'] -%} {{ relay['as_name']|escape }} (BGP) {% else -%} unknown {% endif -%}
First Seen
{{ relay['first_seen']|escape }}
Last Restarted
{{ relay['last_restarted']|escape }}
Consensus Weight
{{ relay['consensus_weight_fraction']|escape }} ({{ relay['consensus_weight']|escape }})
Platform
{{ relay['platform'] }}
{% endblock %}