Two general approaches will solve this issue:
- ping from the monitored hosts at regular intervals
- instruct the NIC to leave the OS rest on pings.
In the first case you will be monitoring for activity from target hosts, if it goes quiet, then it is sleeping.
In the second case you have to configure the wake on lan capabilities of your network interfaces to respond only to a specific type of wol-signal, and not to any ping. Alternatively you may disable wake on lan entirely. In which case (presumably) the hosts will respond to pings only if they are awake.
Regrettably, I have no Mac OS X to play with, but perhaps the wake on lan settings may be configured the same way as in FreeBSD (man 8 ifconfig, look for wol).