Pergunta

Como sei que o endereço MAC do visitante na Hosting Linux (NGINX)?

Do usuário Ethernet.

Obrigado.

Foi útil?

Solução

Você não pode obter isso através do PHP.

O protocolo de redes é usado em uma pilha. Ao fazer comunicações HTTP, seu servidor da Web usa o protocolo HTTP, responsável pelas comunicações de alto nível. Este protocolo é implementado no topo do protocolo TCP (que traz conexões e números de porta semelhantes a fluxos), que por sua vez são implementados na parte superior do protocolo IP (V4 ou V6, que trazem endereços IP para identificação), que em A curva é implementada no topo do protocolo Ethernet.

O protocolo Ethernet é o que você precisa trabalhar. Possui o endereço MAC de origem e o endereço MAC de destino. No entanto, infelizmente, há muitos problemas com isso.

Primeiro, os dados que ele transmitem é provavelmente difícil de acessar: eu digo "provavelmente" porque nunca tropecei em como fazê -lo.

Segundo, assim como você obtém o endereço do roteador do seu cliente ao acessar seu site, você obtém o endereço MAC do roteador do seu cliente no nível Ethernet. A menos que eles não percorram nenhum roteador (o que só aconteceria se seu servidor fosse diretamente conectado à sua máquina cliente sem nenhum roteador interferindo, porque há muitos roteadores por aí que retransmitem os dados para outras partes da Internet), aí Não há chance de o endereço MAC que você receberá será o de seus clientes.

Terceiro, o Apache nunca tentará acessar esses dados. E como o PHP é "Sandboxed" no ambiente de rede que o Apache dá, não há como voltar ao protocolo Ethernet.

Portanto, o acesso ao endereço MAC de um visitante de um site, do PHP, não é possível.

EDITAR Parece que você tirou a parte do PHP da sua pergunta. Então, obviamente, o último ponto não permanece mais.

Outras dicas

Você não pode conseguir isso com PHP, não está incluído no HTTP

A questão mais geral é este. Como todo o PHP precisa trabalhar (suponho que este seja o PHP em execução no seu servidor da web, aqui) é a solicitação HTTP, você não poderá obter o endereço MAC. Isso requer algo em funcionamento do lado do visitante.

Isso pode ou não funcionar. Sei que funcionará em clientes da LAN; no entanto, para clientes externos, pode estar incorreto. Eu não conheço demais minha rede, mas vale a pena tentar, certo?

Se você executar o comando ARP -A no Windows ou Linux, ele imprimirá seus registros ARP, que você poderá analisar para o Mac.

Fora isso, até onde eu sei, o Apache (e, portanto, o PHP) não apenas fornece endereços MAC em seus vars Env.

*Editado: Desculpe, isso não funcionará ... a melhor concessionária é, no entanto, isso apenas dará o Mac do seu roteador.

Se você quiser fazer isso, os clientes precisarão estar diretamente conectados ao seu servidor, sem roteador entre ...

No entanto, se for esse o caso, o arping funcionará ... não conheço uma ferramenta melhor, mas parece um pouco desperdiçado fazer um ping (na raiz) por apenas um endereço MAC.

O endereço MAC é visível apenas para o provedor de rede se eu estiver correto (seu host da Internet pode ver o endereço MAC do seu roteador, por exemplo), não pense que você pode obtê -lo com o PHP.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top