summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-checkip.spec481
-rw-r--r--sources1
3 files changed, 483 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..d623231 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/checkip-1.2.0.tar.gz
diff --git a/python-checkip.spec b/python-checkip.spec
new file mode 100644
index 0000000..36853cc
--- /dev/null
+++ b/python-checkip.spec
@@ -0,0 +1,481 @@
+%global _empty_manifest_terminate_build 0
+Name: python-checkip
+Version: 1.2.0
+Release: 1
+Summary: Resolves public (WAN) IP from supported providers.
+License: MIT License
+URL: https://github.com/tsredanovic/checkip
+Source0: https://mirrors.aliyun.com/pypi/web/packages/ec/ea/dd0a0efd09c1674569a473361a3c916a32575a4d80aad10ce41575eb3944/checkip-1.2.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-requests
+
+%description
+# CheckIP
+
+Resolves public (WAN) IP from supported providers.
+
+
+## Providers
+
+| Code | URL |
+| -------------- | -------------------------------------------- |
+| cloudflare | https://cloudflare.com/cdn-cgi/trace |
+| dyndns | http://checkip.dyndns.org/ |
+| freedns | https://freedns.afraid.org/dynamic/check.php |
+| googledomains | https://domains.google.com/checkip |
+| he | http://checkip.dns.he.net/ |
+| httpbin | https://httpbin.org/ip |
+| ip4only | http://ip4only.me/api/ |
+| ipfy | https://api.ipify.org/ |
+| loopia | http://dns.loopia.se/checkip/checkip.php |
+| myip | https://api.myip.com |
+| myonlineportal | https://myonlineportal.net/checkip |
+| noip | http://ip1.dynupdate.no-ip.com/ |
+| nsupdate | http://ipv4.nsupdate.info/myip |
+| zoneedit | http://dynamic.zoneedit.com/checkip.html |
+
+
+## Installation
+
+```bash
+pip install checkip
+```
+
+
+## Usage
+
+### Get IP
+Use provider's code to fetch your public IP from that provider.
+
+```python
+from checkip import get_ip
+
+get_ip('cloudflare')
+```
+
+### Resolve IP
+Use multiple provider's codes to resolve your most commonly returned public IP.
+
+```python
+from checkip import resolve_ip
+
+resolve_ip(['cloudflare', 'dyndns', 'freedns'])
+```
+
+### Register Custom Provider
+You can create your own custom providers by extending the `BaseProvider` base class.
+
+Attribute `code` must be defined on each custom provider which can not match any already registered code.
+
+To succesfully get an IP from a custom provider you can either:
+
+1. Define attribute `URL` on your custom provider class. By default the IP address will be parsed from that URL's response.
+
+```python
+from checkip.providers import BaseProvider, register_provider
+from checkip import get_ip
+
+class MyProvider(BaseProvider):
+ code = 'myprovider'
+ url = 'https://example.com/ip'
+
+register_provider(MyProvider)
+
+get_ip('myprovider')
+```
+
+2. Overwrite the provider's `get_ip` method for even more customization:
+
+```python
+from checkip.providers import BaseProvider, register_provider
+from checkip import get_ip
+
+class MyProvider(BaseProvider):
+ code = 'myprovider'
+
+ def get_ip(self):
+ response = requests.get('https://example.com/ip.json')
+ response.raise_for_status()
+ return response.json()['ip']
+
+register_provider(MyProvider)
+
+get_ip('myprovider')
+```
+
+
+## CLI Usage
+
+### Get IP
+Use provider's code to fetch your public IP from that provider.
+
+```bash
+$ checkip get cloudflare
+```
+
+### Resolve IP
+Use multiple provider's codes to resolve your most commonly returned public IP.
+
+```bash
+$ checkip resolve cloudflare dyndns freedns
+```
+
+
+## License
+
+**CheckIP** is a free software under terms of the `MIT License`.
+
+Copyright (C) 2021 by [Toni Sredanović](https://tsredanovic.github.io/), toni.sredanovic@gmail.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
+
+%package -n python3-checkip
+Summary: Resolves public (WAN) IP from supported providers.
+Provides: python-checkip
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-checkip
+# CheckIP
+
+Resolves public (WAN) IP from supported providers.
+
+
+## Providers
+
+| Code | URL |
+| -------------- | -------------------------------------------- |
+| cloudflare | https://cloudflare.com/cdn-cgi/trace |
+| dyndns | http://checkip.dyndns.org/ |
+| freedns | https://freedns.afraid.org/dynamic/check.php |
+| googledomains | https://domains.google.com/checkip |
+| he | http://checkip.dns.he.net/ |
+| httpbin | https://httpbin.org/ip |
+| ip4only | http://ip4only.me/api/ |
+| ipfy | https://api.ipify.org/ |
+| loopia | http://dns.loopia.se/checkip/checkip.php |
+| myip | https://api.myip.com |
+| myonlineportal | https://myonlineportal.net/checkip |
+| noip | http://ip1.dynupdate.no-ip.com/ |
+| nsupdate | http://ipv4.nsupdate.info/myip |
+| zoneedit | http://dynamic.zoneedit.com/checkip.html |
+
+
+## Installation
+
+```bash
+pip install checkip
+```
+
+
+## Usage
+
+### Get IP
+Use provider's code to fetch your public IP from that provider.
+
+```python
+from checkip import get_ip
+
+get_ip('cloudflare')
+```
+
+### Resolve IP
+Use multiple provider's codes to resolve your most commonly returned public IP.
+
+```python
+from checkip import resolve_ip
+
+resolve_ip(['cloudflare', 'dyndns', 'freedns'])
+```
+
+### Register Custom Provider
+You can create your own custom providers by extending the `BaseProvider` base class.
+
+Attribute `code` must be defined on each custom provider which can not match any already registered code.
+
+To succesfully get an IP from a custom provider you can either:
+
+1. Define attribute `URL` on your custom provider class. By default the IP address will be parsed from that URL's response.
+
+```python
+from checkip.providers import BaseProvider, register_provider
+from checkip import get_ip
+
+class MyProvider(BaseProvider):
+ code = 'myprovider'
+ url = 'https://example.com/ip'
+
+register_provider(MyProvider)
+
+get_ip('myprovider')
+```
+
+2. Overwrite the provider's `get_ip` method for even more customization:
+
+```python
+from checkip.providers import BaseProvider, register_provider
+from checkip import get_ip
+
+class MyProvider(BaseProvider):
+ code = 'myprovider'
+
+ def get_ip(self):
+ response = requests.get('https://example.com/ip.json')
+ response.raise_for_status()
+ return response.json()['ip']
+
+register_provider(MyProvider)
+
+get_ip('myprovider')
+```
+
+
+## CLI Usage
+
+### Get IP
+Use provider's code to fetch your public IP from that provider.
+
+```bash
+$ checkip get cloudflare
+```
+
+### Resolve IP
+Use multiple provider's codes to resolve your most commonly returned public IP.
+
+```bash
+$ checkip resolve cloudflare dyndns freedns
+```
+
+
+## License
+
+**CheckIP** is a free software under terms of the `MIT License`.
+
+Copyright (C) 2021 by [Toni Sredanović](https://tsredanovic.github.io/), toni.sredanovic@gmail.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
+
+%package help
+Summary: Development documents and examples for checkip
+Provides: python3-checkip-doc
+%description help
+# CheckIP
+
+Resolves public (WAN) IP from supported providers.
+
+
+## Providers
+
+| Code | URL |
+| -------------- | -------------------------------------------- |
+| cloudflare | https://cloudflare.com/cdn-cgi/trace |
+| dyndns | http://checkip.dyndns.org/ |
+| freedns | https://freedns.afraid.org/dynamic/check.php |
+| googledomains | https://domains.google.com/checkip |
+| he | http://checkip.dns.he.net/ |
+| httpbin | https://httpbin.org/ip |
+| ip4only | http://ip4only.me/api/ |
+| ipfy | https://api.ipify.org/ |
+| loopia | http://dns.loopia.se/checkip/checkip.php |
+| myip | https://api.myip.com |
+| myonlineportal | https://myonlineportal.net/checkip |
+| noip | http://ip1.dynupdate.no-ip.com/ |
+| nsupdate | http://ipv4.nsupdate.info/myip |
+| zoneedit | http://dynamic.zoneedit.com/checkip.html |
+
+
+## Installation
+
+```bash
+pip install checkip
+```
+
+
+## Usage
+
+### Get IP
+Use provider's code to fetch your public IP from that provider.
+
+```python
+from checkip import get_ip
+
+get_ip('cloudflare')
+```
+
+### Resolve IP
+Use multiple provider's codes to resolve your most commonly returned public IP.
+
+```python
+from checkip import resolve_ip
+
+resolve_ip(['cloudflare', 'dyndns', 'freedns'])
+```
+
+### Register Custom Provider
+You can create your own custom providers by extending the `BaseProvider` base class.
+
+Attribute `code` must be defined on each custom provider which can not match any already registered code.
+
+To succesfully get an IP from a custom provider you can either:
+
+1. Define attribute `URL` on your custom provider class. By default the IP address will be parsed from that URL's response.
+
+```python
+from checkip.providers import BaseProvider, register_provider
+from checkip import get_ip
+
+class MyProvider(BaseProvider):
+ code = 'myprovider'
+ url = 'https://example.com/ip'
+
+register_provider(MyProvider)
+
+get_ip('myprovider')
+```
+
+2. Overwrite the provider's `get_ip` method for even more customization:
+
+```python
+from checkip.providers import BaseProvider, register_provider
+from checkip import get_ip
+
+class MyProvider(BaseProvider):
+ code = 'myprovider'
+
+ def get_ip(self):
+ response = requests.get('https://example.com/ip.json')
+ response.raise_for_status()
+ return response.json()['ip']
+
+register_provider(MyProvider)
+
+get_ip('myprovider')
+```
+
+
+## CLI Usage
+
+### Get IP
+Use provider's code to fetch your public IP from that provider.
+
+```bash
+$ checkip get cloudflare
+```
+
+### Resolve IP
+Use multiple provider's codes to resolve your most commonly returned public IP.
+
+```bash
+$ checkip resolve cloudflare dyndns freedns
+```
+
+
+## License
+
+**CheckIP** is a free software under terms of the `MIT License`.
+
+Copyright (C) 2021 by [Toni Sredanović](https://tsredanovic.github.io/), toni.sredanovic@gmail.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
+
+%prep
+%autosetup -n checkip-1.2.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-checkip -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..21faeec
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+fad60678d42422b32b03d143018b2751 checkip-1.2.0.tar.gz