Metadata-Version: 1.1
Name: ipgetter2
Version: 1.1.9
Summary: Utility to fetch your external IP address
Home-page: https://github.com/starofrainnight/ipgetter2
Author: Hong-She Liang
Author-email: starofrainnight@gmail.com
License: Apache Software License
Description: ipgetter2
        =========
        
        .. image:: https://img.shields.io/pypi/v/ipgetter2.svg
            :target: https://pypi.python.org/pypi/ipgetter2
        
        .. image:: https://travis-ci.org/starofrainnight/ipgetter2.svg?branch=master
            :target: https://travis-ci.org/starofrainnight/ipgetter2
        
        .. image:: https://ci.appveyor.com/api/projects/status/github/starofrainnight/ipgetter2?svg=true
            :target: https://ci.appveyor.com/project/starofrainnight/ipgetter2
        
        Utility to fetch your external IP address.
        
        This module is designed to fetch your external IP address from the internet.
        
        It is used mostly when behind a NAT.
        
        It picks your IP randomly from a server list to minimize request overhead on a single server
        
        NOTICE: This library is try to act as a replacement of the **ipgetter** library, because that library has disappeared on pypi.org and github.
        
        * License: Apache-2.0
        * Documentation: https://ipgetter2.readthedocs.io.
        
        Why there another ipgetter library?
        -----------------------------------------
        
        I found ipgetter disappeared at night of 2019-05-11. I don't know precisely when it's disappeared, and don't know what's going on.
        
        So I write this library with same API interface for my projects that depends on it as a replacement, hope it will help people that ran into  the same situation.
        
        Features
        ---------
        
        * Correctly detect webpage encoding by chardet
        * Control the timeout by library `requests` not by signal alarm (Alarm signal will cause problems)
        * Smart server fetch algorithm, the get() method will fetch at least 2 IP with the same value in 3 random servers (return the only one valid IP without checking if there have only one server responsed)
        * Support IPv6 either (Return both values if the server provided two of them)
        
        Usage
        ---------
        
        * ipgetter2 usage
        
        ::
        
            >>> from ipgetter2 import IPGetter
            >>> getter = IPGetter()
            >>> getter.get()
            {v4:"8.8.8.8", v6:"::"}
            >>> getter.get_from("http://checkip.dyndns.org/plain")
            {v4:"8.8.8.8", v6:"::"}
            >>> getter.test()
            Numbers of Servers : 46
            [1/46] Testing : http://ip.dnsexit.com
            [2/46] Testing : http://ifconfig.me/ip
            [3/46] Testing : http://ipecho.net/plain
            ......
            [45/46] Testing : http://httpbin.org/ip
            [46/46] Testing : https://api.myip.com
            8 server failed : ['http://checkip.dyndns.org/plain', 'http://www.canyouseeme.org/', 'http://whatsmyip.net/', 'http://www.ip-adress.com/', 'http://ip-lookup.net/', 'https://check.torproject.org/', 'https://www.privateinternetaccess.com/pages/whats-my-ip/', 'http://myexternalip.com/']
            {IPAddress(v4="117.117.117.117", v6="::"): 26, IPAddress(v4="0.0.0.0", v6="::"): 11, IPAddress(v4="117.117.117.116", v6="::"): 1}
            IP's : {v4:"117.117.117.117", v6:"::"} = 26 ocurrencies
        
        * Emulated API interface of ipgetter library
        
        ::
        
            >>> from ipgetter2 import ipgetter1 as ipgetter
            >>> myip = ipgetter.myip()
            >>> myip
            '8.8.8.8'
            >>> ipgetter.IPgetter().test()
            Number of servers: 47
            IP's :
            8.8.8.8 = 47 ocurrencies
        
        Credits
        ---------
        
        This package was created with Cookiecutter_ and the `PyPackageTemplate`_ project template.
        
        .. _Cookiecutter: https://github.com/audreyr/cookiecutter
        .. _`PyPackageTemplate`: https://github.com/starofrainnight/rtpl-pypackage
        
        
        
        =======
        History
        =======
        
        1.1.9 (2019-08-26)
        ------------------
        
        * Fixed not working on python 3.5.x
        * Fixed tests failed on windows
        
        1.1.7 (2019-05-25)
        ------------------
        
        * Added more servers, mostly from China
        
        1.1.5 (2019-05-25)
        ------------------
        
        * Speed up get() by threading.Thread, send request simultaneously
        
        1.1.1 (2019-05-22)
        ------------------
        
        * First release on PyPI.
        
Keywords: ipgetter2
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
