Skip to main content

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:
    1. Local ARP cache.
    2. 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.leases or 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

ipdiscovery-1.1.3.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ipdiscovery-1.1.3-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

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

Hashes for ipdiscovery-1.1.3.tar.gz
Algorithm Hash digest
SHA256 abdf4dfadec5d5454d705b7321211439f2adbbc9c65ffed8c13c866d7ffa573a
MD5 d82780774b1ed278ef884a3255066c06
BLAKE2b-256 5b25ad2a3c4be1e709f80b667951f67a2aa269d489c08d2bfd97597293223b67

See more details on using hashes here.

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

Hashes for ipdiscovery-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e2ce2edb6ee1a2ceb4393e30d9586079b296d777082f621a951bde19de7608ec
MD5 72e78529ad7f884afc7e79fc092af553
BLAKE2b-256 fa44a8fa81f8c38071310fbd2a2bf052d014d6530c20c78fb3b7103da0599bb6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page