1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
*********
GeoIP
*********
.. topic:: Introduction
This page describes how to setup the GeoIP example application.
This example uses the open source `GeoIP APIs`_ for looking up
the location of an IP address. The API includes support for lookup
of country, region, city, latitude, and longitude.
A live demo can be found on the PyAMF blog_.
.. contents::
.. image:: images/geoip-example.jpg
Download
========
Clone the PyAMF repository with:
.. code-block:: bash
git clone git://github.com/hydralabs/pyamf.git pyamf
cd doc/tutorials/examples/actionscript/geoip/python
Alternatively, if you just want to have a look, you can browse_ the example online.
Gateway
=======
**Note**: Make sure you have the Maxmind `GeoIP API for Python`_ installed.
The remoting gateway for the Adobe Flash Player and Python AMF clients starts on
http://localhost:8000 when you launch the `development server`_ from the
`python` folder:
.. code-block:: bash
python server.py
You should see something like this:
.. code-block:: bash
Running GeoIP AMF gateway on http://localhost:8000
Options
-------
When you run `python server.py --help` it will display the various options available
for this example server:
.. code-block:: bash
Usage: server.py [options]
Options:
-h, --help show this help message and exit
-p PORT, --port=PORT port number [default: 8000]
--host=HOST host address [default: localhost]
Client
======
Flash Player
------------
You can simply open the `SWF file`_ and it will connect to http://localhost:8000.
Python
------
The Python AMF client can be started by running the following from the `python`
folder:
.. code-block:: bash
python client.py
You should see something like this for the client:
.. code-block:: bash
2009-12-26 21:35:44,659 DEBUG [root] Connecting to http://localhost:8000
2009-12-26 21:35:44,659 DEBUG [root] Referer: None
2009-12-26 21:35:44,659 DEBUG [root] User-Agent: PyAMF/0.5.1
2009-12-26 21:35:44,659 DEBUG [root] Adding request geoip.getGeoInfo()
2009-12-26 21:35:44,659 DEBUG [root] Executing single request: /1
2009-12-26 21:35:44,659 DEBUG [root] AMF version: 0
2009-12-26 21:35:44,663 DEBUG [root] Sending POST request to
2009-12-26 21:35:44,665 DEBUG [root] Waiting for response...
2009-12-26 21:35:44,672 DEBUG [root] Got response status: 200
2009-12-26 21:35:44,672 DEBUG [root] Content-Type: application/x-amf
2009-12-26 21:35:44,672 DEBUG [root] Content-Length: 110
2009-12-26 21:35:44,672 DEBUG [root] Server: PyAMF/0.5.1 CPython/2.6.4
2009-12-26 21:35:44,673 DEBUG [root] Read 110 bytes for the response
2009-12-26 21:35:44,673 DEBUG [root] Response: <Envelope amfVersion=0>
(u'/1', <Response status=/onResult>
<GeoInfo country={'code': None, 'name': None} ip=127.0.0.1>
</Response>)
</Envelope>
2009-12-26 21:35:44,673 DEBUG [root] Removing request: /1
<GeoInfo country={'code': None, 'name': None} ip=127.0.0.1>
Options
_______
When you run `python client.py --help` it will display the various options available
for this example client:
.. code-block:: bash
Usage: client.py [options]
Options:
-h, --help show this help message and exit
-p PORT, --port=PORT port number [default: 8000]
--host=HOST host address [default: localhost]
.. _GeoIP APIs: http://sourceforge.net/projects/geoip
.. _GeoIP API for Python: http://www.maxmind.com/app/python
.. _Python: http://python.org
.. _blog: http://blog.pyamf.org/2008/01/geoip-example
.. _browse: http://github.com/hydralabs/pyamf/tree/master/doc/tutorials/examples/actionscript/geoip
.. _development server: http://github.com/hydralabs/pyamf/tree/master/doc/tutorials/examples/actionscript/geoip/python/server.py
.. _SWF file: http://github.com/hydralabs/pyamf/tree/master/doc/tutorials/examples/actionscript/geoip/flex/deploy/geoip.swf
|