mirror of https://github.com/python/cpython
144 lines
3.2 KiB
Python
Executable File
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!"
|