MnT Client

Overview

The MnT (Monitoring & Troubleshooting) API provides access to active sessions and authentication history.

Port: 443
Authentication: Basic Auth
Format: XML (converted to JSON)

Initialization

from netapi.vendors.cisco.ise import MnTClient

# From dsec secrets
client = MnTClient.from_dsec('home.lab.ise.primary')

Session Operations

List Active Sessions

# Get all active sessions
sessions = client.sessions.list()

for session in sessions:
    print(f"{session.mac} - {session.ip} - {session.username}")

Get Session by MAC

session = client.sessions.get_by_mac('C8:5B:76:C6:59:62')

print(f"IP: {session.framed_ip_address}")
print(f"VLAN: {session.vlan}")
print(f"NAD: {session.nas_ip_address}")

CLI Usage

# List all active sessions
netapi ise mnt sessions

# Get specific session
netapi ise mnt session C8:5B:76:C6:59:62

# JSON output for jq
netapi ise mnt --format json sessions | jq '.[0]'

# Filter sessions by VLAN
netapi ise mnt --format json sessions | \
  jq -r '.[] | select(.vlan=="40") | [.calling_station_id, .framed_ip_address] | @tsv'

# Count by NAD
netapi ise mnt --format json sessions | \
  jq -r 'group_by(.nas_ip_address) | map({nad: .[0].nas_ip_address, count: length}) | .[]'