{ "info": { "author": "Hong-She Liang", "author_email": "starofrainnight@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "ipgetter2\n=========\n\n.. image:: https://img.shields.io/pypi/v/ipgetter2.svg\n :target: https://pypi.python.org/pypi/ipgetter2\n\n.. image:: https://travis-ci.org/starofrainnight/ipgetter2.svg?branch=master\n :target: https://travis-ci.org/starofrainnight/ipgetter2\n\n.. image:: https://ci.appveyor.com/api/projects/status/github/starofrainnight/ipgetter2?svg=true\n :target: https://ci.appveyor.com/project/starofrainnight/ipgetter2\n\nUtility to fetch your external IP address.\n\nThis module is designed to fetch your external IP address from the internet.\n\nIt is used mostly when behind a NAT.\n\nIt picks your IP randomly from a server list to minimize request overhead on a single server\n\nNOTICE: This library is try to act as a replacement of the **ipgetter** library, because that library has disappeared on pypi.org and github.\n\n* License: Apache-2.0\n* Documentation: https://ipgetter2.readthedocs.io.\n\nWhy there another ipgetter library?\n-----------------------------------------\n\nI 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.\n\nSo 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.\n\nFeatures\n---------\n\n* Correctly detect webpage encoding by chardet\n* Control the timeout by library `requests` not by signal alarm (Alarm signal will cause problems)\n* 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)\n* Support IPv6 either (Return both values if the server provided two of them)\n\nUsage\n---------\n\n* ipgetter2 usage\n\n::\n\n >>> from ipgetter2 import IPGetter\n >>> getter = IPGetter()\n >>> getter.get()\n {v4:\"8.8.8.8\", v6:\"::\"}\n >>> getter.get_from(\"http://checkip.dyndns.org/plain\")\n {v4:\"8.8.8.8\", v6:\"::\"}\n >>> getter.test()\n Numbers of Servers : 46\n [1/46] Testing : http://ip.dnsexit.com\n [2/46] Testing : http://ifconfig.me/ip\n [3/46] Testing : http://ipecho.net/plain\n ......\n [45/46] Testing : http://httpbin.org/ip\n [46/46] Testing : https://api.myip.com\n 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/']\n {IPAddress(v4=\"117.117.117.117\", v6=\"::\"): 26, IPAddress(v4=\"0.0.0.0\", v6=\"::\"): 11, IPAddress(v4=\"117.117.117.116\", v6=\"::\"): 1}\n IP's : {v4:\"117.117.117.117\", v6:\"::\"} = 26 ocurrencies\n\n* Emulated API interface of ipgetter library\n\n::\n\n >>> from ipgetter2 import ipgetter1 as ipgetter\n >>> myip = ipgetter.myip()\n >>> myip\n '8.8.8.8'\n >>> ipgetter.IPgetter().test()\n Number of servers: 47\n IP's :\n 8.8.8.8 = 47 ocurrencies\n\nCredits\n---------\n\nThis package was created with Cookiecutter_ and the `PyPackageTemplate`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`PyPackageTemplate`: https://github.com/starofrainnight/rtpl-pypackage\n\n\n\n=======\nHistory\n=======\n\n1.1.9 (2019-08-26)\n------------------\n\n* Fixed not working on python 3.5.x\n* Fixed tests failed on windows\n\n1.1.7 (2019-05-25)\n------------------\n\n* Added more servers, mostly from China\n\n1.1.5 (2019-05-25)\n------------------\n\n* Speed up get() by threading.Thread, send request simultaneously\n\n1.1.1 (2019-05-22)\n------------------\n\n* First release on PyPI.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/starofrainnight/ipgetter2", "keywords": "ipgetter2", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "ipgetter2", "package_url": "https://pypi.org/project/ipgetter2/", "platform": "", "project_url": "https://pypi.org/project/ipgetter2/", "project_urls": { "Homepage": "https://github.com/starofrainnight/ipgetter2" }, "release_url": "https://pypi.org/project/ipgetter2/1.1.9/", "requires_dist": null, "requires_python": "", "summary": "Utility to fetch your external IP address", "version": "1.1.9" }, "last_serial": 5729205, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "7aba8c8d5558b2a6b467309ffe94f83a", "sha256": "9565dac496ebb805569d469b79b534bcde2aac61a006f219b8507df192a6892e" }, "downloads": -1, "filename": "ipgetter2-1.1.0.zip", "has_sig": false, "md5_digest": "7aba8c8d5558b2a6b467309ffe94f83a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18459, "upload_time": "2019-05-22T03:12:11", "url": "https://files.pythonhosted.org/packages/ea/16/e1c03a719bec3d10b043e6d6cebd35883c4de1c2cb7eeac1e33bc0504897/ipgetter2-1.1.0.zip" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "83b7a3a6c0e8df626fa65bff1436d2c4", "sha256": "a67ae70e1c8541f9506450eee8f50b2e3d37b93a10c626b92b655192e4d62ac4" }, "downloads": -1, "filename": "ipgetter2-1.1.1.zip", "has_sig": false, "md5_digest": "83b7a3a6c0e8df626fa65bff1436d2c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18452, "upload_time": "2019-05-22T03:11:07", "url": "https://files.pythonhosted.org/packages/fe/8c/fcc55cb6fdb06ab9b7466e6f2e347dc54e38b9669477f0f2f75f9e8f943d/ipgetter2-1.1.1.zip" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "b2cd3259c3bb6d8b572489bfb4e8e9ab", "sha256": "6a98195e738c0c33117568735ba4e953393336ef629c14209ecec89f54c7adc3" }, "downloads": -1, "filename": "ipgetter2-1.1.2.zip", "has_sig": false, "md5_digest": "b2cd3259c3bb6d8b572489bfb4e8e9ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19674, "upload_time": "2019-05-22T08:19:45", "url": "https://files.pythonhosted.org/packages/cf/aa/83a44785dcab941f67466bf29d16a16d355b2cd5570922146c52c295f478/ipgetter2-1.1.2.zip" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "4c6cbc8c56af58fefe6279017e441802", "sha256": "e0b464dba17798e563e3e0826e913e5523c635ac9cd20ad5ba44513ceba53b38" }, "downloads": -1, "filename": "ipgetter2-1.1.3.zip", "has_sig": false, "md5_digest": "4c6cbc8c56af58fefe6279017e441802", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19682, "upload_time": "2019-05-23T04:02:18", "url": "https://files.pythonhosted.org/packages/09/b8/e652d0f911d909cef76a35192d209e293709c29ec2d6d5fe4973f96fd2dd/ipgetter2-1.1.3.zip" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "f57a9deb098b3dbe5237709a08272002", "sha256": "8a4268348bdd0f7d90dce25d6c00561d108ff220eb3e7e9f94425945d74eaf7e" }, "downloads": -1, "filename": "ipgetter2-1.1.4.zip", "has_sig": false, "md5_digest": "f57a9deb098b3dbe5237709a08272002", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19684, "upload_time": "2019-05-23T06:06:45", "url": "https://files.pythonhosted.org/packages/97/8f/d3c5906f0581aecb2d1b8acc8189042c731944fa0653289631ba42f26fee/ipgetter2-1.1.4.zip" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "482816917d3a655629f089d06c0149df", "sha256": "1a45985a17f49d71f842144bcbedd8ee17ee9aea7c49261c7028ce32cfddaf1c" }, "downloads": -1, "filename": "ipgetter2-1.1.6.zip", "has_sig": false, "md5_digest": "482816917d3a655629f089d06c0149df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20178, "upload_time": "2019-05-25T12:56:44", "url": "https://files.pythonhosted.org/packages/cd/d3/e63395731c84e54ce6d69a006da4f1397efb3bf83670339066b0c2382e3d/ipgetter2-1.1.6.zip" } ], "1.1.7": [ { "comment_text": "", "digests": { "md5": "918161b4d70b693dc0632e594455eef8", "sha256": "af18d5ebe00d07dedcb1a3d38493b743dd6157239d3c6bab35d9775ae2a7362e" }, "downloads": -1, "filename": "ipgetter2-1.1.7.zip", "has_sig": false, "md5_digest": "918161b4d70b693dc0632e594455eef8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20508, "upload_time": "2019-05-25T16:04:15", "url": "https://files.pythonhosted.org/packages/4a/34/ee741ca3b2d69a53e81490545d98b095f7130247366fd68bbd56eb8b7d4a/ipgetter2-1.1.7.zip" } ], "1.1.8": [ { "comment_text": "", "digests": { "md5": "89f2bae801adbe1824bd70401617bf98", "sha256": "6fa8aaa4e17953eca7868ebfc682b8524bff98c0ee7adbe138a9d4308e0d21b2" }, "downloads": -1, "filename": "ipgetter2-1.1.8.zip", "has_sig": false, "md5_digest": "89f2bae801adbe1824bd70401617bf98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20599, "upload_time": "2019-05-25T16:17:40", "url": "https://files.pythonhosted.org/packages/b3/bd/acbcf9a9cb752225320056211892e8c7c65e593e11ff9be06478788aab8f/ipgetter2-1.1.8.zip" } ], "1.1.9": [ { "comment_text": "", "digests": { "md5": "138d10706804f643a68c8fc73122610f", "sha256": "37a51198fd105eb72c15cd28aa82065e0fa3f42e27dd6d634e5de6543a78fa29" }, "downloads": -1, "filename": "ipgetter2-1.1.9.zip", "has_sig": false, "md5_digest": "138d10706804f643a68c8fc73122610f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22656, "upload_time": "2019-08-26T06:39:55", "url": "https://files.pythonhosted.org/packages/bd/c6/54f2a8e8a187b537d588a3760b7a14feb5e0057c708b29b8e094a3383021/ipgetter2-1.1.9.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "138d10706804f643a68c8fc73122610f", "sha256": "37a51198fd105eb72c15cd28aa82065e0fa3f42e27dd6d634e5de6543a78fa29" }, "downloads": -1, "filename": "ipgetter2-1.1.9.zip", "has_sig": false, "md5_digest": "138d10706804f643a68c8fc73122610f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22656, "upload_time": "2019-08-26T06:39:55", "url": "https://files.pythonhosted.org/packages/bd/c6/54f2a8e8a187b537d588a3760b7a14feb5e0057c708b29b8e094a3383021/ipgetter2-1.1.9.zip" } ] }