ip-discovery is an open-source Python library to enhance automation workflows for IP discovery.
Project description
🛡️ ipDiscovery
ipDiscovery is an open-source Python library designed to enhance automation workflows across a wide range of operating systems, including RHEL, SLES, Ubuntu, VMware, Windows, Oracle, etc by enabling fully automated post-deployment IP discovery.
It is a secure, cross-platform tool for retrieving IP addresses from MAC addresses using local ARP or remote
DHCP servers. It supports automated environments with built-in encryption (AES-256-GCM)
Key Benefits of the ipDiscovery Library
Solves a Critical Deployment Problem
Automatically retrieves OS-assigned IP addresses during deployment workflows, eliminating the need for manual steps.
No Dependency on External Agents
Works without requiring external agents like HPE AMS — truly agentless.
Uses DHCP Lease Data for IP Mapping
Securely determines assigned IPs by leveraging MAC-to-IP mapping from DHCP lease data.
Streamlines Post-Deployment Automation
- Eliminates a key bottleneck in OS validation pipelines, allowing automation to proceed smoothly.
Enhances Scalability and Reliability
- Supports scalable, reliable test environments with minimal human intervention.
Secure and Easy Integration
- Features secure data handling and is easy to integrate into CI/CD or automation workflows.
Transforms Manual to Automated Workflows
- Converts traditionally manual processes into fully automated, high-performance solutions.
📁 1. Configuration & Initialization
configure_dhcp_servers(servers: List[Dict])
- One-time setup to register Linux/Windows DHCP servers.
- Credentials are securely encrypted using AES-256-GCM.
list_dhcp_servers() -> List[Dict]
- Returns a list of registered DHCP servers.
- Sensitive data (like credentials) is masked in the output.
remove_dhcp_server(server_id: str)
- Removes a DHCP server configuration by its ID or IP address.
🌐 2. IP Retrieval Workflow
get_host_ip(mac_addresses: List[str]) -> Dict[str, str]
- Attempts to resolve MAC addresses via:
- Local ARP cache.
- Remote DHCP servers (fallback).
- Returns a dictionary of
{ mac: ip }or'not found'.
_check_arp_cache(mac: str) -> Optional[str]
- Internal helper to parse the local ARP table for IP resolution.
_query_linux_dhcp(mac: str, server: Dict) -> Optional[str]
- SSH into Linux DHCP server.
- Parses
dhcpd.leasesor inspects the ARP table.
_query_windows_dhcp(mac: str, server: Dict) -> Optional[str]
- SSH into Windows server.
- Executes PowerShell
Get-DhcpServerv4Lease.
🔐 3. Security Functions
encrypt_data(data: str) -> str
- Internally used to encrypt data using AES-256-GCM.
decrypt_data(encrypted: str) -> str
- Secure in-memory decryption of data.
💡 Flow Secured By: AES-256-GCM
Every sensitive operation, including credentials and lease data, is protected using AES-256-GCM, ensuring confidentiality, integrity, and authenticity.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ipdiscovery-1.1.3.tar.gz.
File metadata
- Download URL: ipdiscovery-1.1.3.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abdf4dfadec5d5454d705b7321211439f2adbbc9c65ffed8c13c866d7ffa573a
|
|
| MD5 |
d82780774b1ed278ef884a3255066c06
|
|
| BLAKE2b-256 |
5b25ad2a3c4be1e709f80b667951f67a2aa269d489c08d2bfd97597293223b67
|
File details
Details for the file ipdiscovery-1.1.3-py3-none-any.whl.
File metadata
- Download URL: ipdiscovery-1.1.3-py3-none-any.whl
- Upload date:
- Size: 3.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2ce2edb6ee1a2ceb4393e30d9586079b296d777082f621a951bde19de7608ec
|
|
| MD5 |
72e78529ad7f884afc7e79fc092af553
|
|
| BLAKE2b-256 |
fa44a8fa81f8c38071310fbd2a2bf052d014d6530c20c78fb3b7103da0599bb6
|