world -- Print mappings between country names and DNS country codes. | |
Contact: Barry Warsaw | |
Email: bwarsaw@python.org | |
This script will take a list of Internet addresses and print out where in the | |
world those addresses originate from, based on the top-level domain country | |
code found in the address. Addresses can be in any of the following forms: | |
xx -- just the country code or top-level domain identifier | |
host.domain.xx -- any Internet host or network name | |
somebody@where.xx -- an Internet email address | |
If no match is found, the address is interpreted as a regular expression [*] | |
and a reverse lookup is attempted. This script will search the country names | |
and print a list of matching entries. You can force reverse mappings with the | |
`-r' flag (see below). | |
For example: | |
%% world tz us | |
tz originated from Tanzania, United Republic of | |
us originated from United States | |
%% world united | |
united matches 6 countries: | |
ae: United Arab Emirates | |
uk: United Kingdom (common practice) | |
um: United States Minor Outlying Islands | |
us: United States | |
tz: Tanzania, United Republic of | |
gb: United Kingdom | |
[*] Note that regular expressions must conform to Python 1.5's re.py module | |
syntax. The comparison is done with the search() method. | |
Country codes are maintained by the RIPE Network Coordination Centre, | |
in coordination with the ISO 3166 Maintenance Agency at DIN Berlin. The | |
authoritative source of counry code mappings is: | |
<url:ftp://info.ripe.net/iso3166-countrycodes> | |
The latest known change to this information was: | |
Thu Aug 7 17:59:51 MET DST 1997 | |
This script also knows about non-geographic top-level domains. | |
Usage: world [-d] [-p file] [-o] [-h] addr [addr ...] | |
--dump | |
-d | |
Print mapping of all top-level domains. | |
--parse file | |
-p file | |
Parse an iso3166-countrycodes file extracting the two letter country | |
code followed by the country name. Note that the three letter country | |
codes and numbers, which are also provided in the standard format | |
file, are ignored. | |
--outputdict | |
-o | |
When used in conjunction with the `-p' option, output is in the form | |
of a Python dictionary, and country names are normalized | |
w.r.t. capitalization. This makes it appropriate for cutting and | |
pasting back into this file. | |
--reverse | |
-r | |
Force reverse lookup. In this mode the address can be any Python | |
regular expression; this is matched against all country names and a | |
list of matching mappings is printed. In normal mode (e.g. without | |
this flag), reverse lookup is performed on addresses if no matching | |
country code is found. | |
-h | |
--help | |
Print this message. | |
Local Variables: | |
indent-tabs-mode: nil | |
End: |