Files
claudetools/.analyze-glaztech.py
Mike Swanson 2a1ea6c9f7 sync: auto-sync from Mikes-MacBook-Air.local at 2026-07-08 06:49:28
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-07-08 06:49:28
2026-07-08 06:50:46 -07:00

37 lines
1.4 KiB
Python

import json
from collections import defaultdict
with open('/Users/azcomputerguru/ClaudeTools/.glaztech-sessions.json') as f:
data = json.load(f)
print(f'Total machines: {len(data)}')
# Extract IPs and current sites
subnet_info = defaultdict(lambda: {'count': 0, 'machines': [], 'current_sites': set()})
for session in data:
ip = session.get('GuestInfo', {}).get('PrivateNetworkAddress', '')
name = session.get('Name', 'Unknown')
current_site = session.get('CustomProperties', {}).get('CustomProperty2', '')
if ip and ip != '':
# Extract /24 subnet
subnet = '.'.join(ip.split('.')[:3]) + '.0/24'
subnet_info[subnet]['count'] += 1
subnet_info[subnet]['machines'].append({'name': name, 'ip': ip})
if current_site:
subnet_info[subnet]['current_sites'].add(current_site)
# Sort by count descending
sorted_subnets = sorted(subnet_info.items(), key=lambda x: x[1]['count'], reverse=True)
print('\n=== Subnet Distribution ===')
for subnet, info in sorted_subnets:
sites_str = ', '.join(sorted(info['current_sites'])) if info['current_sites'] else 'No site tag'
print(f'{subnet:20s} {info["count"]:3d} machines Current tags: {sites_str}')
# Show first 3 machines as examples
for m in info['machines'][:3]:
print(f' - {m["name"]:30s} {m["ip"]}')
if len(info['machines']) > 3:
print(f' ... and {len(info["machines"]) - 3} more')