cpython/Tools/world/world

144 lines
3.2 KiB
Python
Executable File

#! /depot/sundry/plat/bin/python
#
# Note: you may have to edit the top line in this file.
#
# Usage: world addr1 [addr2 ...]
#
# $Id$
# This little script will take an Internet address of the form
# foobar@some.place.domain and will print out where in the world that
# message originated from. Its pretty dumb in that it just matches
# the `domain' part against a hard-coded list, which can probably
# change fairly quickly given the world's political fluidity.
import sys
prog = sys.argv[0]
del sys.argv[0]
if not sys.argv:
print "No addresses provided.\nUsage:", prog, "addr1 [addr2 ...]\n"
# The mappings
nameorg = {
"arpa": "Arpanet",
"com": "commercial",
"edu": "educational",
"gov": "government",
"mil": "military",
"net": "networking",
"org": "non-commercial",
"int": "international"
}
country = {
"ag": "Antigua and Barbuda",
"al": "Albania",
"aq": "Antarctica",
"ar": "Argentina",
"at": "Austria",
"au": "Australia",
"bb": "Barbados",
"be": "Belgium",
"bg": "Bulgaria",
"bo": "Bolivia",
"br": "Brazil",
"bs": "Bahamas",
"bz": "Belize",
"ca": "Canada",
"ch": "Switzerland",
"cl": "Chile",
"cm": "Cameroon",
"cn": "China",
"co": "Colombia",
"cr": "Costa Rica",
"cy": "Cyprus",
"cz": "Czech Republic",
"de": "Germany",
"dk": "Denmark",
"dm": "Dominica",
"do": "Dominican Republic",
"ec": "Ecuador",
"ee": "Estonia",
"eg": "Egypt",
"es": "Spain",
"fi": "Finland",
"fj": "Fiji",
"fr": "France",
"gb": "Great Britain",
"gh": "Ghana",
"gr": "Greece",
"hk": "Hong Kong",
"hr": "Croatia",
"hu": "Hungary",
"id": "Indonesia",
"ie": "Ireland",
"il": "Israel",
"in": "India",
"is": "Iceland",
"it": "Italy",
"jm": "Jamaica",
"jp": "Japan",
"km": "Comoros",
"kn": "Saint Kitts and Nevis",
"kr": "Republic of Korea",
"kw": "Kuwait",
"lc": "Saint Lucia",
"li": "Liechtenstein",
"lk": "Sri Lanka",
"lu": "Luxembourg",
"lv": "Latvia",
"my": "Malaysia",
"mx": "Mexico",
"na": "Namibia",
"ni": "Nicaragua",
"nl": "Netherlands",
"no": "Norway",
"nz": "New Zealand",
"pe": "Peru",
"pg": "Papua New Guinea",
"ph": "Philippines",
"pl": "Poland",
"pr": "Puerto Rico",
"pt": "Portugal",
"py": "Paraguay",
"ro": "Romania",
"se": "Sweden",
"sg": "Singapore",
"si": "Slovenia",
"sk": "Slovakia",
"sr": "Suriname",
"su": "USSR",
"tw": "Taiwan",
"th": "Thailand",
"tn": "Tunisia",
"tr": "Turkey",
"tt": "Trinidad and Tobago",
"uk": "United Kingdom",
"us": "United States",
"uy": "Uruguay",
"vc": "Saint Vincent and the Grenadines",
"ve": "Venezuela",
"vi": "Virgin Islands",
"yu": "Yugoslavia",
"za": "South Africa",
"zw": "Zimbabwe"
}
import string
while sys.argv:
rawaddr = sys.argv[0]
del sys.argv[0]
components = string.splitfields(rawaddr, ".")
addr = components[-1]
if nameorg.has_key(addr):
print addr, "is from a USA", nameorg[addr], "organization"
elif country.has_key(addr):
print addr, "originated from", country[addr]
else:
print "I have no idea where", addr, "came from!"