IPC Artsnoa Python SDK
Official Python SDK for ipc.artsnoa.com API - Get your IP address and location information.
Features
- Simple and intuitive API
- Type hints for better IDE support
- Comprehensive error handling
- Context manager support
- Minimal dependencies
Installation
pip install ipc-artsnoa
Or with uv:
uv add ipc-artsnoa
Quick Start
from ipc_artsnoa import IPCClient
# Initialize client (API key is optional)
client = IPCClient(api_key='YOUR_API_KEY')
# Get basic IP information
data = client.get_ip()
print(f'Your IP: {data["ip"]}, Country: {data["country"]}')
# Get detailed IP information
details = client.get_ip_details()
print(f'IP: {details["ip"]}, ASN: {details["asn"]}, Currency: {details["currency"]}')
Usage Examples
Basic Usage
from ipc_artsnoa import IPCClient
# Create client with API key
client = IPCClient(api_key='YOUR_API_KEY')
# Get basic IP information
data = client.get_ip()
print(f"IP: {data['ip']}")
print(f"Country: {data['country']}")
# Without API key
client = IPCClient()
data = client.get_ip()
print(f"Your IP: {data['ip']}")
Detailed IP Information
from ipc_artsnoa import IPCClient
client = IPCClient(api_key='YOUR_API_KEY')
# Get detailed information including ASN, currency, languages
details = client.get_ip_details()
print(f"IP: {details['ip']}")
print(f"User Agent: {details['userAgent']}")
print(f"ASN: {details['asn']}")
print(f"Country: {details['country']}")
print(f"Currency: {details['currency']}")
print(f"Languages: {details['languages']}")
print(f"Timestamp: {details['timestamp']}")
SDK Version Information
from ipc_artsnoa import IPCClient
client = IPCClient()
# Get available SDK versions
versions = client.get_sdk_versions()
print(f"Python SDK: {versions['python']}")
print(f"JavaScript SDK: {versions['javascript']}")
Custom Configuration
from ipc_artsnoa import IPCClient
# Custom timeout
client = IPCClient(
api_key='YOUR_API_KEY',
timeout=15.0
)
data = client.get_ip()
Using Context Manager
from ipc_artsnoa import IPCClient
# Automatically closes session when done
with IPCClient(api_key='YOUR_API_KEY') as client:
data = client.get_ip()
print(f"IP: {data['ip']}")
Error Handling
The SDK provides specific exception types for different error scenarios:
from ipc_artsnoa import (
IPCClient,
IPCError,
IPCAPIError,
IPCConnectionError,
IPCTimeoutError
)
client = IPCClient(api_key='YOUR_API_KEY')
try:
data = client.get_ip()
print(f"Your IP: {data['ip']}")
except IPCAPIError as e:
print(f"API error: {e}")
if hasattr(e, 'status_code'):
print(f"Status code: {e.status_code}")
except IPCConnectionError as e:
print(f"Connection error: {e}")
except IPCTimeoutError as e:
print(f"Request timeout: {e}")
except IPCError as e:
print(f"IPC error: {e}")
API Reference
IPCClient
Constructor
IPCClient(
api_key: str | None = None,
timeout: float = 10.0
)
Parameters:
api_key(str | None): API key for authentication. Optional.timeout(float): Request timeout in seconds. Defaults to 10.0
Methods
get_ip() -> dict
Get basic IP address and location information.
Returns:
- Dictionary containing basic IP information including:
ip: Your IP addresscountry: Country code
Raises:
IPCAPIError: When API returns an error responseIPCConnectionError: When connection failsIPCTimeoutError: When request times out
Example:
data = client.get_ip()
print(f"IP: {data['ip']}, Country: {data['country']}")
get_ip_details() -> dict
Get detailed IP address information.
Returns:
- Dictionary containing detailed IP information including:
ip: Your IP addressuserAgent: Browser user agent stringasn: Autonomous System Numbercountry: Country codecurrency: Country currency codelanguages: Supported languagestimestamp: Request timestampversion: API version
Raises:
IPCAPIError: When API returns an error responseIPCConnectionError: When connection failsIPCTimeoutError: When request times out
Example:
details = client.get_ip_details()
print(f"IP: {details['ip']}, ASN: {details['asn']}")
get_sdk_versions() -> dict
Get available SDK versions.
Returns:
- Dictionary containing SDK versions for different platforms:
python: Python SDK versionjavascript: JavaScript SDK version
Raises:
IPCAPIError: When API returns an error responseIPCConnectionError: When connection failsIPCTimeoutError: When request times out
Example:
versions = client.get_sdk_versions()
print(f"Python SDK: {versions['python']}")
close()
Close the underlying HTTP session.
Example:
client.close()
Context Manager Support
The client supports context manager protocol for automatic resource cleanup:
with IPCClient(api_key='YOUR_API_KEY') as client:
data = client.get_ip()
Development
# Clone repository
git clone https://github.com/artsnoa/ipc-python-sdk.git
cd ipc-python-sdk
# Install dependencies with uv
uv sync
# Build package
uv build
Requirements
- Python 3.10 or higher
- requests >= 2.31.0
License
MIT License
Support
- Documentation: https://github.com/artsnoa/ipc-python-sdk
- Issues: https://github.com/artsnoa/ipc-python-sdk/issues
- Email: aurora@artsnoa.com
Metadata
Release files for ipc-artsnoa 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ipc_artsnoa-1.0.1.tar.gz | 48.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ipc_artsnoa-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 55.5 kB
Release files / ipc_artsnoa-1.0.1.tar.gz
| Download URL | ipc_artsnoa-1.0.1.tar.gz |
|---|---|
| Size | 48.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4328f030e63fef0498e1c65d180c4e6cc8677382b3c50b046ab06b0f24cb5bc6
|
|
BLAKE2b-256 checksum How to use checksums |
e71c7d9b9cb4e7eee35cad4326314b50a8f164a7bae240fc25bd566197456447
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.0
|
Release files / ipc_artsnoa-1.0.1-py3-none-any.whl
| Download URL | ipc_artsnoa-1.0.1-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4b46d3cfb26e56e46d145b6370baf133bf1001f6c082b1498700de71970cd6d2
|
|
BLAKE2b-256 checksum How to use checksums |
34d0d047209a2bca7929c9cd1a8897c19c91bdc89eeef7a326fa7157715b0ecc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.0
|