diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/config/mmdb-convert.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/config/mmdb-convert.py b/src/config/mmdb-convert.py index 269a5fe20..cbe9acdc5 100644 --- a/src/config/mmdb-convert.py +++ b/src/config/mmdb-convert.py @@ -339,11 +339,24 @@ def parse_mm_file(s): def format_datum(datum): """Given a Datum at a leaf of the tree, return the string that we should write as its value. + + We first try country->iso_code which is the two-character ISO 3166-1 + country code of the country where MaxMind believes the end user is + located. If there's no such key, we try registered_country->iso_code + which is the country in which the ISP has registered the IP address. + Without falling back to registered_country, we'd leave out all ranges + that MaxMind thinks belong to anonymous proxies, because those ranges + don't contain country but only registered_country. In short: let's + fill all A1 entries with what ARIN et. al think. """ try: return bytesToStr(datum.map['country'].map['iso_code'].data) except KeyError: pass + try: + return bytesToStr(datum.map['registered_country'].map['iso_code'].data) + except KeyError: + pass return None IPV4_PREFIX = "0"*96 |