IPSpot is a Python library for retrieving the current system's IP data and detailed location information such as region, longitude, and latitude. It supports both public and private IPv4 and IPv6 detection through multiple API providers, using a fallback mechanism for improved reliability. It has a simple and modular design, making it easy to perform fast IP, geolocation, provider, and regional lookups directly from your machine.
| PyPI Counter | |
| Github Stars |
| Branch | main | dev |
| CI |
| Code Quality |
- Download Version 0.8 or Latest Source
pip install .
- Check Python Packaging User Guide
pip install ipspot==0.8
>>> from ipspot import get_public_ipv4, IPv4API
>>> get_public_ipv4(api=IPv4API.IP_API_COM)
{'status': True, 'data': {'ip': 'xx.xx.xx.xx', 'api': 'ip-api.com'}}
>>> get_public_ipv4(api=IPv4API.IP_API_COM, geo=True, timeout=10)
{'data': {'country_code': 'GB', 'latitude': 50.9097, 'longitude': -1.4043, 'api': 'ip-api.com', 'country': 'United Kingdom', 'timezone': 'Europe/London', 'organization': '', 'region': 'England', 'ip': 'xx.xx.xx.xx', 'city': 'Southampton'}, 'status': True}
>>> get_public_ipv4(api=IPv4API.IP_API_COM, geo=True, timeout=10, max_retries=5, retry_delay=4, backoff_factor=1.2)
{'data': {'country_code': 'GB', 'latitude': 50.9097, 'longitude': -1.4043, 'api': 'ip-api.com', 'country': 'United Kingdom', 'timezone': 'Europe/London', 'organization': '', 'region': 'England', 'ip': 'xx.xx.xx.xx', 'city': 'Southampton'}, 'status': True}>>> from ipspot import get_private_ipv4
>>> get_private_ipv4()
{'status': True, 'data': {'ip': '10.36.18.154'}}>>> from ipspot import get_public_ipv6, IPv6API
>>> get_public_ipv6(api=IPv6API.IP_SB)
{'data': {'api': 'ip.sb', 'ip': 'xx:xx:xx:xx::xx'}, 'status': True}
>>> get_public_ipv6(api=IPv6API.IP_SB, geo=True, timeout=10)
{'data': {'latitude': 51.2993, 'region': None, 'city': None, 'country_code': 'DE', 'api': 'ip.sb', 'longitude': 9.491, 'country': 'Germany', 'organization': 'Hetzner Online', 'timezone': 'Europe/Berlin', 'ip': 'xx:xx:xx:xx::xx'}, 'status': True}
>>> get_public_ipv6(api=IPv6API.IP_SB, geo=True, timeout=10, max_retries=5, retry_delay=4, backoff_factor=1.2)
{'data': {'latitude': 51.2993, 'region': None, 'city': None, 'country_code': 'DE', 'api': 'ip.sb', 'longitude': 9.491, 'country': 'Germany', 'organization': 'Hetzner Online', 'timezone': 'Europe/Berlin', 'ip': 'xx:xx:xx:xx::xx'}, 'status': True}>>> from ipspot import get_private_ipv6
>>> get_private_ipv6()
{'status': True, 'data': {'ip': 'fe80::e1bd:f78:b233:21c9'}}ℹ️ You can use ipspot or python -m ipspot to run this program
> ipspot --version
0.8> ipspot --info
___ ____ ____ _
|_ _|| _ \ / ___| _ __ ___ | |_
| | | |_) |\___ \ | '_ \ / _ \ | __|
| | | __/ ___) || |_) || (_) || |_
|___||_| |____/ | .__/ \___/ \__|
|_|
__ __ ___ ___
\ \ / / _ / _ \ ( _ )
\ \ / / (_)| | | | / _ \
\ V / _ | |_| | _ | (_) |
\_/ (_) \___/ (_) \___/
IPSpot is a Python library for retrieving the current system's IP data and detailed location information such as region, longitude, and latitude.
It supports both public and private IPv4 and IPv6 detection through multiple API providers, using a fallback mechanism for improved reliability.
It has a simple and modular design, making it easy to perform fast IP, geolocation, provider, and regional lookups directly from your machine.
Repo : https://github.com/openscilab/ipspot
> ipspot
Private IP:
IPv4: 192.168.1.35
IPv6: fe80::e1bd:f78:b233:21c9
Public IP and Location Info:
IPv4:
API: ipinfo.io
City: Nuremberg
Country: Germany
Country Code: DE
IP: xx.xx.xx.xx
Latitude: 49.4527
Longitude: 11.0783
Organization: Hetzner Online GmbH
Region: Bavaria
Timezone: Europe/Berlin
IPv6:
API: ip.sb
City: N/A
Country: Germany
Country Code: DE
IP: xx:xx:xx:xx::xx
Latitude: 51.2993
Longitude: 9.491
Organization: Hetzner Online
Region: N/A
Timezone: Europe/Berlinℹ️ ipv4-api valid choices: [auto-safe, auto, ip-api.com, ipinfo.io, ip.sb, ident.me, tnedi.me, ipapi.co, ipleak.net, my-ip.io, ifconfig.co, reallyfreegeoip.org, freeipapi.com, myip.la, ipquery.io, ipwho.is, wtfismyip.com, myip.wtf, db-ip.com]
ℹ️ The default value: auto-safe
> ipspot --ipv4-api="ipinfo.io"
Private IP:
IPv4: 192.168.1.35
IPv6: fe80::e1bd:f78:b233:21c9
Public IP and Location Info:
IPv4:
API: ipinfo.io
City: Nuremberg
Country: Germany
Country Code: DE
IP: xx.xx.xx.xx
Latitude: 49.4527
Longitude: 11.0783
Organization: Hetzner Online GmbH
Region: Bavaria
Timezone: Europe/Berlin
IPv6:
API: ip.sb
City: N/A
Country: Germany
Country Code: DE
IP: xx:xx:xx:xx::xx
Latitude: 51.2993
Longitude: 9.491
Organization: Hetzner Online
Region: N/A
Timezone: Europe/Berlinℹ️ ipv6-api valid choices: [auto-safe, auto, ip.sb, ident.me, tnedi.me, ipleak.net, my-ip.io, ifconfig.co, reallyfreegeoip.org, myip.la, freeipapi.com, wtfismyip.com, myip.wtf]
ℹ️ The default value: auto-safe
> ipspot --ipv6-api="ip.sb"
Private IP:
IPv4: 192.168.1.35
IPv6: fe80::e1bd:f78:b233:21c9
Public IP and Location Info:
IPv4:
API: ipinfo.io
City: Nuremberg
Country: Germany
Country Code: DE
IP: xx.xx.xx.xx
Latitude: 49.4527
Longitude: 11.0783
Organization: Hetzner Online GmbH
Region: Bavaria
Timezone: Europe/Berlin
IPv6:
API: ip.sb
City: N/A
Country: Germany
Country Code: DE
IP: xx:xx:xx:xx::xx
Latitude: 51.2993
Longitude: 9.491
Organization: Hetzner Online
Region: N/A
Timezone: Europe/Berlin> ipspot --no-geo
Private IP:
IPv4: 192.168.1.35
IPv6: fe80::5c40:769f:22de:c196
Public IP:
IPv4:
API: tnedi.me
IP: xx.xx.xx.xx
IPv6:
API: ip.sb
IP: xx:xx:xx:xx::xxJust fill an issue and describe it. We'll check it ASAP!
- Please complete the issue template
You can also join our discord server
Give a ⭐️ if this project helped you!
If you do like our project and we hope that you do, can you please support us? Our project is not and is never going to be working for profit. We need the money just so we can continue doing what we do ;-)

