Search documentation of snmpkit

# SnmpKit.SnmpMgr.Target (snmpkit v1.3.17)

Target parsing and validation for SNMP requests.

Handles parsing of various target formats and resolves hostnames to IP addresses.

# Summary

## Functions

parse(target)

Parses a target string into a structured format.

resolve(target)

Resolves a target to a parsed struct, with fallback for unparseable targets.

resolve_hostname(target)

Resolves a hostname to an IP address if needed.

validate_connectivity(map, timeout \\ 5000)

Validates that a target is reachable (basic connectivity check).

# Functions

# parse(target)

Parses a target string into a structured format.

## Examples

    iex> SnmpKit.SnmpMgr.Target.parse("192.168.1.1:161")
    {:ok, %{host: {192, 168, 1, 1}, port: 161}}

    iex> SnmpKit.SnmpMgr.Target.parse("device.local")
    {:ok, %{host: "device.local", port: 161}}

    iex> SnmpKit.SnmpMgr.Target.parse("192.168.1.1")
    {:ok, %{host: {192, 168, 1, 1}, port: 161}}

# resolve(target)

Resolves a target to a parsed struct, with fallback for unparseable targets.

Unlike `parse/1` which returns `{:ok, target}` or `{:error, reason}`, this function always returns a target struct, using the raw input as the host with default port 161 if parsing fails.

This is the canonical function for target resolution across all modules.

## Examples

    iex> SnmpKit.SnmpMgr.Target.resolve("192.168.1.1:161")
    %{host: {192, 168, 1, 1}, port: 161}

    iex> SnmpKit.SnmpMgr.Target.resolve("device.local")
    %{host: "device.local", port: 161}

    iex> SnmpKit.SnmpMgr.Target.resolve(%{host: {127, 0, 0, 1}, port: 162})
    %{host: {127, 0, 0, 1}, port: 162}

# resolve_hostname(target)

Resolves a hostname to an IP address if needed.

If the host is already an IP tuple, returns it unchanged.

# validate_connectivity(map, timeout \\ 5000)

Validates that a target is reachable (basic connectivity check).