#! /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!"