File: geoip.rst

package info (click to toggle)
pyamf 0.6.1%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 7,692 kB
  • sloc: python: 17,944; xml: 455; makefile: 116; sql: 38; java: 11; sh: 7
file content (134 lines) | stat: -rw-r--r-- 4,001 bytes parent folder | download
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