Revision: 47935
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at June 18, 2011 19:22 by ksaver
Initial Code
#!/usr/bin/env python
"""
geoipy.py
A simple IP geolocation python script.
Uses geody.com geolocation web service.
Requires BeautifulSoup library.
Example:
$ ./geoipy.py 198.117.0.122
IP: 198.117.0.122 Location: MSFC, ALABAMA, \
United States (National Aeronautics and Space Administration)
ksaver, June 18, 2011.
Public Domain Code.
"""
import re
import sys
from urllib import urlopen
from BeautifulSoup import BeautifulSoup as Soup
def main(ipaddr):
"""Geo-locates an IP address passed in argv[1]."""
geody = "http://www.geody.com/geoip.php?ip=" + ipaddr
html_page = urlopen(geody).read()
soup = Soup(html_page)
# Filter paragraph containing geolocation info.
paragraph = soup('p')[3]
# Remove html tags using regex.
geo_txt = re.sub(r'<.*?>', '', str(paragraph))
print geo_txt[32:].strip() + '\n'
if __name__ == "__main__":
if len(sys.argv) > 1:
main(sys.argv[1])
else:
main('127.0.0.1')
Initial URL
Initial Description
Initial Title
geoipy: A simple IP geolocation python script.
Initial Tags
Initial Language
Python