Os únicos sites que podem acessar endereços MAC, são sites que fazem download de um componente de software para fazer interface com eles, o que permite que o site contorne as regras usuais. Então você tecnicamente tem que dar permissão primeiro fazendo isso. ActiveX & WMI (interface do Windows via Windows Management Instrumentation) para Internet Explorer e Java são métodos usados que poderiam transmitir um endereço MAC. O ActiveX requer que o WMI esteja instalado para que isso funcione.
Aqui está um script usando o WMI que lê endereços MAC: link [OBSERVAÇÃO: esse link agora está inativo, mas o script anteriormente hospedado naquele local fez o trabalho dos computadores baseados em WMI com Windows ainda serem necessários como informações para essa pergunta.]
Aqui está uma pergunta com código para fazer isso em Java no StackOverflow:
Como mencionado no comentário abaixo por Hennes, os endereços MAC são apenas internos. Os servidores da Web geralmente não transmitem essas informações ... apenas os endereços IP e, mesmo assim, os usuários geralmente mostram apenas o endereço IP de sua localização. Se você estiver indo para um site, por exemplo, em um café, o IP mostrado é o do café, não um usuário da rede.
Com relação aos endereços IP, o JavaScript pode usar o WebRTC (exemplos para as versões mais recentes do Chrome e Firefox) agora para mostrar endereços IP internos, conforme explicado neste artigo: link Veja exemplos de trabalho ao vivo aqui: link e um que attepts para detectar todos os endereços IP em seu alcance local aqui: link Isso não é para ser confundido com dados de endereço MAC. Se o seu JavaScript estiver desativado, isso não funcionará, é claro.
Como foi mencionado na pergunta, o JavaScript lê a hora do relógio no seu sistema. Quando você publica de uma página para outra em um formulário, ele pode postar o tempo de javascript, dando o fuso horário em que você está. Aplicativos que usam aplicativos de lance on-line em tempo real fazem isso. Se isso é diferente do tempo que o servidor vê, isso seria um 'sinalizador', por assim dizer. A solução é matar o JavaScript ou alterar o horário do seu relógio. Por si só não dá muito a saída embora. Nem todo mundo tem seu relógio configurado corretamente, mas a maioria tem sincronização automática com servidores de tempo real, especialmente celulares.
Nos comentários abaixo, specializt mencionou que o WMI pode ser desativado. Assim, o ActiveX, o JavaScript e o Java podem ser simplesmente desinstalados.
Os cookies por si só recebem o horário do servidor, não o tempo do navegador da web. Se você quer tempo do lado do cliente, o método JavaScript que mencionei acima é uma maneira de fazer isso.
Se você está olhando para um site, e dois navegadores web vêm do mesmo ip (que o seu faria se você não usasse proxies) - não seria necessário verificar um cookie para saber que eles vieram do mesmo localização. O log de IP informa isso. Eles não podem saber que era do mesmo computador no 'laboratório', mas pode ser adivinhado porque eles estão no mesmo intervalo de tempo no log da web. Isso pode não ajudar - uma pessoa ou uma pessoa com um cúmplice ... pode ser vista sob essa luz.
Os proxies resolveriam o problema do IP do log do servidor, é claro. Os dois navegadores que usam um local de proxy diferente, como você mencionou, são excelentes.