for network in self.db.networks:
self._write_network(f, network, "TXT", "\"%s\"" % network)
+ # Everything
+
+ def _write_everything(self, f):
+ flags = {
+ _location.NETWORK_FLAG_ANONYMOUS_PROXY : "is-anonymous-proxy",
+ _location.NETWORK_FLAG_SATELLITE_PROVIDER : "is-satellite-provider",
+ _location.NETWORK_FLAG_ANYCAST : "is-anycast",
+ _location.NETWORK_FLAG_DROP : "is-drop",
+ }
+
+ # Write all networks
+ for network in self.db.networks:
+ # List the network
+ self._write_network(f, network, "A", "127.0.0.2")
+
+ # Write the prefix
+ self._write_network(f, network, "TXT", "\"prefix=%s\"" % network)
+
+ # Write the country code
+ if network.country_code:
+ self._write_network(f, network, "TXT", "\"cc=%s\"" % network.country_code)
+
+ # Write the ASN
+ if network.asn:
+ self._write_network(f, network, "TXT", "\"as-number=%s\"" % network.asn)
+
+ # Write the AS name
+ asn = self.db.get_as(network.asn)
+ if asn:
+ self._write_network(f, network, "TXT", "\"as-name=%s\"" % asn.name)
+
+ # Write flags
+ for flag in flags:
+ if network.has_flag(flag):
+ self._write_network(f, network, "TXT", "\"%s=yes\"" % flags[flag])
+
formats = {
- "asn" : _write_asn,
- "cc" : _write_cc,
- "bogons" : _write_bogons,
- "origin" : _write_origin,
- "prefix" : _write_prefix,
+ "asn" : _write_asn,
+ "cc" : _write_cc,
+ "bogons" : _write_bogons,
+ "origin" : _write_origin,
+ "prefix" : _write_prefix,
+ "everything" : _write_everything,
}