Hi Ryan,
EMC compass is a good choice if available, because it queries all switches and thus allows to easily correlate the info. EAC (formerly NAC) is a better solution for this.
A pure layer 2 switch may just know the MAC address, but not the IP address of a connected end system. The MAC address may even have timed out. Thus it is not always possible to provide the information you seek.
EOS switches (and EXOS 22.2) provide the so called "Node Alias Table," which saves information about packets seen on switch ports. This can show you which ports an IP address was seen on.
DHCP snooping builds a database of IP to MAC bindings and can be used to connect an IP address to a port on a layer 2 switch.
A layer 3 switch will build an ARP cache. Entries in this cache can time out, just like MAC addresses in the FDB. EXOS will build an ARP cache if it has an IP interface in the VLAN, even if forwarding is not enabled. If the end system is directly connected to the layer 3 switch, the "show arp" output on EXOS and EOS shows the port as well as the ARP information.
In general, you would ping the device (to refresh ARP and MAC tables), query the layer 3 switch for the MAC address, then follow the FDB entries for the MAC address just found out to the access switch the end system is connected to. That works for every vendor, but requires that the end system is currently connected correctly and responding to pings.
Thanks,
Erik