Git Product home page Git Product logo

geoip-api-python's Introduction

MaxMind GeoIP Legacy Python Extension API

End of Life

MaxMind will be retiring the GeoIP Legacy databases at the end of May 2022. Until then, this library will only receive critical security and bug fixes. Support for this library will end completely with the last release of the legacy GeoIP databases.

We recommend that you upgrade to our GeoIP2 databases. You can read these from Python using our GeoIP2 Python API.

See our blog post for more information.

Requirements

  • Python 2.5+ or 3.3+
  • GeoIP Legacy C Library 1.4.7 or greater

Installation

With `pip`:

$ pip install GeoIP

From source:

$ python setup.py build
$ python setup.py install

IP Geolocation Usage

IP geolocation is inherently imprecise. Locations are often near the center of the population. Any location provided by a GeoIP database should not be used to identify a particular address or household.

Usage

See the examples in the examples folder.

Troubleshooting

If you get a "libGeoIP.so.1: cannot open shared object No such file or directory" error, add /usr/local/lib to /etc/ld.so.conf then run /sbin/ldconfig /etc/ld.so.conf

License

Copyright (c) 2014 MaxMind LLC

All rights reserved. This package is free software; it is licensed under the LGPL 2.1 or greater.

geoip-api-python's People

Contributors

autarch avatar borisz avatar carlosefr avatar dependabot-preview[bot] avatar gmacon avatar horgh avatar oalders avatar oschwald avatar sfarbotka avatar zackw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geoip-api-python's Issues

Question: Any Security Reason For Python3?

I hope you don't mind a question here?

Is there any reason to switch to the latest 1.3.2 for any security reasons?

I'm only going to use GeoIP for the P2P app nicotine;

https://github.com/eLvErDe/nicotine-plus

I'm using at present GeoIP 1.6.7, so not sure if there's any real benefit from 1.2.9 to 1.3.2, in regards to what I'm doing here?

Thank you very much for your time and help.

MacOs Install Fail

I am installing using pip3 install geoip or sudo pip3 install geoip. I get this that makes it fail.

ERROR: Command errored out with exit status 1:
command: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/tmp/pip-install-k23lgxdu/geoip/setup.py'"'"'; file='"'"'/private/tmp/pip-install-k23lgxdu/geoip/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/tmp/pip-record-e5rjznon/install-record.txt --single-version-externally-managed --compile --install-headers /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/GeoIP
cwd: /private/tmp/pip-install-k23lgxdu/geoip/
Complete output (15 lines):
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py:274: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
Warning: 'classifiers' should be a list, got type 'tuple'
running install
running build
running build_ext
building 'GeoIP' extension
creating build
creating build/temp.macosx-10.9-x86_64-3.9
gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch x86_64 -g -I/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c py_GeoIP.c -o build/temp.macosx-10.9-x86_64-3.9/py_GeoIP.o
py_GeoIP.c:23:10: fatal error: 'GeoIP.h' file not found
#include "GeoIP.h"
^~~~~~~~~
1 error generated.
error: command '/usr/bin/gcc' failed with exit code 1
----------------------------------------
ERROR: Command errored out with exit status 1: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/tmp/pip-install-k23lgxdu/geoip/setup.py'"'"'; file='"'"'/private/tmp/pip-install-k23lgxdu/geoip/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/tmp/pip-record-e5rjznon/install-record.txt --single-version-externally-managed --compile --install-headers /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/GeoIP Check the logs for full command output.

GeoIP.c:23:10: fatal error: GeoIP.h: No such file or directory 23 | #include "GeoIP.h"while trying to install GeoIP package for python PART 2

I want install this python dependency (GeoIP) for one of my tools. I installed GeoIP-1.3.2 from here https://pypi.org/project/GeoIP/#files and i'm getting this error again and again when im writing this code "sudo python3 setup.py install"
and im getting this error
root@shreyas-kali-linux:~/Downloads/GeoIP-1.3.2# sudo python3 setup.py install
/usr/lib/python3.9/distutils/dist.py:274: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
Warning: 'classifiers' should be a list, got type 'tuple'
running install
running bdist_egg
running egg_info
writing GeoIP.egg-info/PKG-INFO
writing dependency_links to GeoIP.egg-info/dependency_links.txt
writing top-level names to GeoIP.egg-info/top_level.txt
reading manifest file 'GeoIP.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'ChangeLog'
writing manifest file 'GeoIP.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_ext
building 'GeoIP' extension
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/build/python3.9-RNBry6/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/build/python3.9-RNBry6/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.9 -c py_GeoIP.c -o build/temp.linux-x86_64-3.9/py_GeoIP.o
py_GeoIP.c:23:10: fatal error: GeoIP.h: No such file or directory
23 | #include "GeoIP.h"
| ^~~~~~~~~
compilation terminated.
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
PLEASE HELP I NEED THAT TOOL VERY BADLY

py_GeoIP.c on MSVC

The extra ';' in GeoIP_GeoIPObject doesn't work well with my MSVC:

typedef struct {
    PyObject_HEAD   // No ';' here due to how PyObject_HEAD is defined.
    GeoIP *gi;
} GeoIP_GeoIPObject;

install fails on python 3.7+

Here is the error:

Ignoring funcsigs: markers 'python_version < "3.0"' don't match your environment
  🐍   β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰ 45/45 β€” 00:00:05
An error occurred while installing geoip==1.3.2 --hash=sha256:a890da6a21574050692198f14b07aa4268a01371278dfc24f71cd9bc87ebf0e6! Will try again.
Ignoring ruamel.ordereddict: markers 'platform_python_implementation == "CPython" and python_version <= "2.7"' don't match your environment
Installing initially failed dependencies...
[pipenv.exceptions.InstallError]:   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pipenv/core.py", line 1874, in do_install
[pipenv.exceptions.InstallError]:       keep_outdated=keep_outdated
[pipenv.exceptions.InstallError]:   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pipenv/core.py", line 1253, in do_init
[pipenv.exceptions.InstallError]:       pypi_mirror=pypi_mirror,
[pipenv.exceptions.InstallError]:   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pipenv/core.py", line 859, in do_install_dependencies
[pipenv.exceptions.InstallError]:       retry_list, procs, failed_deps_queue, requirements_dir, **install_kwargs
[pipenv.exceptions.InstallError]:   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pipenv/core.py", line 763, in batch_install
[pipenv.exceptions.InstallError]:       _cleanup_procs(procs, not blocking, failed_deps_queue, retry=retry)
[pipenv.exceptions.InstallError]:   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pipenv/core.py", line 681, in _cleanup_procs
[pipenv.exceptions.InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)

py_GeoIP.c:23:19: fatal error: GeoIP.h: No such file or directory

Hi,

Im so sorry. I can't build the package. I dont find the header file.

/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
running build
running build_ext
building 'GeoIP' extension
creating build
creating build/temp.linux-i686-2.7
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c py_GeoIP.c -o build/temp.linux-i686-2.7/py_GeoIP.o -fno-strict-aliasing
py_GeoIP.c:23:19: fatal error: GeoIP.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1

cannot install pip geoip!

sudo pip install geoip
Collecting geoip
  Using cached https://files.pythonhosted.org/packages/f2/7b/a463b7c3df8ef4b9c92906da29ddc9e464d4045f00c475ad31cdb9a97aae/GeoIP-1.3.2.tar.gz
  Running setup.py (path:/tmp/pip-install-Gu5vyc/geoip/setup.py) egg_info for package geoip produced metadata for project name geoIp. Fix your #egg=geoip fragments.                                                            
Building wheels for collected packages: geoIp, geoIp
  Running setup.py bdist_wheel for geoIp ... error
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-Gu5vyc/geoip/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-d4TgHm --python-tag cp27:
  /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
    warnings.warn(msg)
  running bdist_wheel
  running build
  running build_ext
  building 'GeoIP' extension
  creating build
  creating build/temp.linux-x86_64-2.7
  x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-07FOaN/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c py_GeoIP.c -o build/temp.linux-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing
  py_GeoIP.c:23:10: fatal error: GeoIP.h: BΓΆyle bir dosya ya da dizin yok
     23 | #include "GeoIP.h"
        |          ^~~~~~~~~
  compilation terminated.
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
  
  ----------------------------------------
  Failed building wheel for geoIp
  Running setup.py clean for geoIp
  Running setup.py bdist_wheel for geoIp ... error
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-Gu5vyc/geoip/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-7_QeFg --python-tag cp27:
  /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
    warnings.warn(msg)
  running bdist_wheel
  running build
  running build_ext
  building 'GeoIP' extension
  creating build
  creating build/temp.linux-x86_64-2.7
  x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-07FOaN/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c py_GeoIP.c -o build/temp.linux-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing
  py_GeoIP.c:23:10: fatal error: GeoIP.h: BΓΆyle bir dosya ya da dizin yok
     23 | #include "GeoIP.h"
        |          ^~~~~~~~~
  compilation terminated.
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
  
  ----------------------------------------
  Failed building wheel for geoIp
  Running setup.py clean for geoIp
Failed to build geoIp geoIp
Installing collected packages: geoIp
  Running setup.py install for geoIp ... error
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-Gu5vyc/geoip/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-2WSvBi/install-record.txt --single-version-externally-managed --compile:
    /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
      warnings.warn(msg)
    running install
    running build
    running build_ext
    building 'GeoIP' extension
    creating build
    creating build/temp.linux-x86_64-2.7
    x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-07FOaN/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c py_GeoIP.c -o build/temp.linux-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing
    py_GeoIP.c:23:10: fatal error: GeoIP.h: BΓΆyle bir dosya ya da dizin yok
       23 | #include "GeoIP.h"
          |          ^~~~~~~~~
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-Gu5vyc/geoip/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-2WSvBi/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-Gu5vyc/geoip/

GeoIP doesn't build on OSX 10.9

Pip install fails with the following output:

building 'GeoIP' extension
    /usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -Os -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c py_GeoIP.c -o build/temp.macosx-10.9-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing
    py_GeoIP.c:23:10: fatal error: 'GeoIP.h' file not found
    #include "GeoIP.h"
             ^
    1 error generated.
    error: command '/usr/bin/clang' failed with exit status 1
    Complete output from command /mnt/bin/python -c "import setuptools, tokenize;__file__='/mnt/build/GeoIP/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/z5/wdtm1zm57bb99dq2nztfcf2m0000gn/T/pip-Mk_hHx-record/install-record.txt --single-version-externally-managed --compile --install-headers /mnt/bin/../include/site/python2.7:

No puedo instalar en win

El error que me manda es:
a)
C:\geoip-api-python-master>python setup.py build
running build
running build_ext
building 'GeoIP' extension
error: Unable to find vcvarsall.bat

C:\geoip-api-python-master>

b)con C:\MinGW
C:\geoip-api-python-master>python setup.py build --compiler=mingw32
running build
running build_ext
building 'GeoIP' extension
C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I/usr/local/include -IC:\Python
27\include -IC:\Python27\PC -c py_GeoIP.c -o build\temp.win32-2.7\Release\py_geo
ip.o
cc1.exe: error: no se reconoce la opciΓ³n de lΓ­nea de Γ³rdenes '-mno-cygwin'
error: command 'gcc' failed with exit status 1

C:\geoip-api-python-master>

Ayuda please

Upload wheels for Python 2

I need to run the legacy code that uses GeoIP, and I have problems getting all the dependencies (gcc and libs) for GeoIP right. Is it possible to upload wheels for Python2 to PyPI?

Python 3.6 support

As it seems "MODE_MMAP_EXT" is not supported when using Python 3.6
There are any plans to release it ?

'pip install GeoIP' fails on macOS: fatal error: 'GeoIP.h' file not found

pip install GeoIP
Collecting GeoIP
Using cached GeoIP-1.3.2.tar.gz
Installing collected packages: GeoIP
Running setup.py install for GeoIP ... error
Complete output from command /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -u -c "import setuptools, tokenize;file='/private/var/folders/q0/xwxj618x4cg28pskym3_b4k40000gp/T/pip-build-OFQtlJ/GeoIP/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /var/folders/q0/xwxj618x4cg28pskym3_b4k40000gp/T/pip-ebv2nX-record/install-record.txt --single-version-externally-managed --compile:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
running install
running build
running build_ext
building 'GeoIP' extension
creating build
creating build/temp.macosx-10.6-intel-2.7
/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c py_GeoIP.c -o build/temp.macosx-10.6-intel-2.7/py_GeoIP.o -fno-strict-aliasing
py_GeoIP.c:23:10: fatal error: 'GeoIP.h' file not found
#include "GeoIP.h"
^
1 error generated.
error: command '/usr/bin/clang' failed with exit status 1

----------------------------------------

Command "/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -u -c "import setuptools, tokenize;file='/private/var/folders/q0/xwxj618x4cg28pskym3_b4k40000gp/T/pip-build-OFQtlJ/GeoIP/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /var/folders/q0/xwxj618x4cg28pskym3_b4k40000gp/T/pip-ebv2nX-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/q0/xwxj618x4cg28pskym3_b4k40000gp/T/pip-build-OFQtlJ/GeoIP/

can not install ?

Both pip install GeoIP and install from source
(GeoIP-1.3.2)

GOT THIS FATAL ERROR:

py_GeoIP.c:21:20: fatal error: Python.h: No such file or directory

#include <Python.h>
^

compilation terminated.

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.