Neither way will be particularly reliable, but I'd use session_onstart and session_onend in the global.asa file to add/delete a user from an active users table and the session_onstart to also check if they are already in it with a different remote_addr or remote_host.
You can't reliably depend upon session_onend to execute so you'd also need something in the on_start event to check for time - e.g. if the user comes back on a different IP but it's been more than 20 minutes, delete the first entry and add him as new.