Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
f30c8e8e
Commit
f30c8e8e
authored
Nov 18, 1996
by
Barry Warsaw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
implementation complete. need to update country codes
parent
aba2160f
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
64 additions
and
22 deletions
+64
-22
Tools/world/world
Tools/world/world
+64
-22
No files found.
Tools/world/world
View file @
f30c8e8e
#! /usr/bin/env python
#
# Usage: world addr1 [addr2 ...]
#
# 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.
# TBD: it would be cool if this script could update itself. I can't
# remember where I got the original list of top level domain
# abbreviations -- probably from the InterNIC. So far I haven't hit
# any that this script can't resolve, so I assume they don't change
# too frequently.
"""Print the long name of an Internet domain.
This script will take an Internet address and print out where in the
world that message originated from, based on the top-level domain 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
Country codes are maintained by the RIPE Network Coordination Centre,
in coordination with the ISO 3166 Maintenance Agency at DIN Berlin.
<url:ftp://info.ripe.net/iso3166-countrycodes>
The latest known change to this information was:
Thu Feb 10 10:20:28 MET 1994
Usage: %s [-d] [-h] addr [addr ...]
-d (--dump) -- print mapping of all known top-level domains
-h (--help) -- print this help message
"""
import
sys
import
string
import
getopt
def
usage
(
msg
=
None
,
exit
=
0
):
if
msg
:
print
msg
print
'Usage:'
,
sys
.
argv
[
0
],
'addr [addr ...]'
sys
.
exit
(
exit
)
def
usage
(
status
=
0
):
print
__doc__
%
sys
.
argv
[
0
]
sys
.
exit
(
status
)
def
resolve
(
rawaddr
):
parts
=
string
.
splitfields
(
rawaddr
,
'.'
)
...
...
@@ -36,8 +47,39 @@ def resolve(rawaddr):
elif
country
.
has_key
(
addr
):
print
addr
,
'originated from'
,
country
[
addr
]
else
:
print
'Where in the world is'
,
addr
,
'?'
print
'Where in the world is %s?'
%
addr
def
main
():
help
=
0
status
=
0
dump
=
0
opts
,
args
=
getopt
.
getopt
(
sys
.
argv
[
1
:],
'hd'
,
[
'help'
,
'dump'
])
for
arg
,
val
in
opts
:
if
arg
in
(
'-h'
,
'--help'
):
help
=
1
elif
arg
in
(
'-d'
,
'--dump'
):
dump
=
1
if
help
:
usage
(
status
)
if
dump
:
print
'USA-centric domains:'
codes
=
nameorg
.
keys
()
codes
.
sort
()
for
code
in
codes
:
print
' %4s:'
%
code
,
nameorg
[
code
]
print
'
\
n
Country coded domains:'
codes
=
country
.
keys
()
codes
.
sort
()
for
code
in
codes
:
print
' %2s:'
%
code
,
country
[
code
]
else
:
map
(
resolve
,
args
)
# The mappings
...
...
@@ -152,4 +194,4 @@ country = {
if
__name__
==
'__main__'
:
ma
p
(
resolve
,
sys
.
argv
[
1
:]
)
ma
in
(
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment