IPSpot is a Python library for retrieving the current system's IP address and location information. It currently supports public and private IPv4 detection using multiple API providers with a fallback mechanism for reliability. Designed with simplicity and modularity in mind, IPSpot offers quick IP and geolocation lookups directly from your machine.
| PyPI Counter | |
| Github Stars |
| Branch | main | dev |
| CI |
| Code Quality |
- Download Version 0.5 or Latest Source
pip install .
- Check Python Packaging User Guide
pip install ipspot==0.5
>>> 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)
{'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)
{'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.5> ipspot --info
___ ____ ____ _
|_ _|| _ \ / ___| _ __ ___ | |_
| | | |_) |\___ \ | '_ \ / _ \ | __|
| | | __/ ___) || |_) || (_) || |_
|___||_| |____/ | .__/ \___/ \__|
|_|
__ __ ___ ____
\ \ / / _ / _ \ | ___|
\ \ / / (_)| | | | |___ \
\ V / _ | |_| | _ ___) |
\_/ (_) \___/ (_)|____/
IPSpot is a Python library for retrieving the current system's IP address and location information.
It currently supports public and private IPv4 detection using multiple API providers with a fallback mechanism for reliability.
Designed with simplicity and modularity in mind, IPSpot offers quick IP and geolocation 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:
API: ip-api.com
City: Southampton
Country: United Kingdom
Country Code: GB
IP: xx.xx.xx.xx
Latitude: 50.9097
Longitude: -1.4043
Organization: N/A
Region: England
Timezone: Europe/Londonℹ️ 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]
ℹ️ 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]
ℹ️ 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 ;-)

