Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
nldj

PHP Exibir IP da máquina local - PHP

Recommended Posts

Tenho uma rede interna a qual 5 usuários com login e senha acessam nosso admin via web.

 

A rede está configurada IPv4 para obter um endereço de IP automaticamente, mas posso alterar isso tanto na máquina local, quanto definir pelo MAC um IP reservado para cada usuário no DHCP do roteador .

 

Quando através da minha aplicação hospedada na Locaweb eu tento pelo PHP recuperar o IP da máquina local, só consigo exibir o que recebo dinamicamente do provedor, a qual está como WAN em meu roteador.

 

Então por ex: Minha WAN é 201.3.212.112 e pelo ipconfig meu computador em rede é 192.168.1.100...eu quero que o PHP exiba 192.168.1.100

 

Tem algum jeito de fazer isso? 

Editado por nldj

Compartilhar este post


Link para o post
Compartilhar em outros sites

@nldj Não tem como fazer isso.  O PHP vai sempre pegar o IP do servidor.  Se está rodando online(hospedado) vai pegar o IP do provedor. Mas você rodar localmente usando o easyPHP, xampp e outros parecidos, vão retornar o seu IP local.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
 
15 horas atrás, DiF disse:

@nldj Não tem como fazer isso.  O PHP vai sempre pegar o IP do servidor.  Se está rodando online(hospedado) vai pegar o IP do provedor. Mas você rodar localmente usando o easyPHP, xampp e outros parecidos, vão retornar o seu IP local.

 

DIF, lí que dá pra pegar o MAC Address usando os comandos system(), exec(), shell, etc...minha duvida é se eu executar em minha aplicação online, vou acessar meu servidor ou minha máquina local?

Editado por nldj

Compartilhar este post


Link para o post
Compartilhar em outros sites

@nldj Não.  Por um simples detalhe:  Segurança.

Bem.. você pode até tentar... mas só vai conseguir retornar o ip local se o PHP estiver rodando na própria máquina. Se for online não há chance. 

Seria o mesmo caso de tentar obter o caminho real de um arquivo do campo input file. Você só vai conseguir o fake path, justamente por questão de segurança.

 

O ip é a mesma coisa. 

Até podes usar essas funções..

Existem centenas de sites que falam sobre isso. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
 
35 minutos atrás, DiF disse:

@nldj Não.  Por um simples detalhe:  Segurança.

Bem.. você pode até tentar... mas só vai conseguir retornar o ip local se o PHP estiver rodando na própria máquina. Se for online não há chance. 

Seria o mesmo caso de tentar obter o caminho real de um arquivo do campo input file. Você só vai conseguir o fake path, justamente por questão de segurança.

 

O ip é a mesma coisa. 

Até podes usar essas funções..

Existem centenas de sites que falam sobre isso. 

DIF, existe alguma api q eu posso requisitar online via minha aplicação PHP, onde seja possível obter o nome dos usuários do windows em rede a partir do IP do meu provedor? Tipo: eu passo o IP pra api encontrar todos que estão conectados no meu roteador e me retornar em XML, por exemplo. Tem como?

Editado por nldj

Compartilhar este post


Link para o post
Compartilhar em outros sites

@nldj Não sei dizer com certeza. A princípio não. Pelo mesmo motivo de segurança.

Imagina que se um usuário mal intencionado use um código que retorne os usuários do windows de um computador pelo IP.  Ele poderia trocar o usuário, trocar senha... violaria a segurança da rede.

 

O que você quer é praticamente inviável.

 

Ainda não entendi a real aplicação disso que você quer.

Mas ratifico que disse mais acima.  Você só pode pegar o ip local SE e somente SE estiver rodando o script php na própria máquina.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
 
agora, DiF disse:

@nldj Não sei dizer com certeza. A princípio não. Pelo mesmo motivo de segurança.

Imagina que se um usuário mal intencionado use um código que retorne os usuários do windows de um computador pelo IP.  Ele poderia trocar o usuário, trocar senha... violaria a segurança da rede.

 

O que você quer é praticamente inviável.

 

Ainda não entendi a real aplicação disso que você quer.

Mas ratifico que disse mais acima.  Você só pode pegar o ip local SE e somente SE estiver rodando o script php na própria máquina.

DIF, vamos ver se você pode me dar uma ideia.

 

Eu tenho uma aplicação web com painel de usuários, clientes e funcionários, cada um com acesso por login e senha, no qual eu abro uma sessão. Tem algumas funções de clientes usadas pelos funcionários, ou seja, os funcionários se logam como sendo clientes. Na preguiça (rs) de desenvolver essas funções de clientes dentro do painel de funcionários, pensei em identificar pelo IP se é o cliente ou o funcionário que está acessando as funções de cliente, para eu gravar um log de onde partiu a requisição. Atualmente o único jeito que tenho para saber a origem é pelo ID, seja de funcionário ou de cliente, mas se o funcionário estiver logado como cliente, não consigo identificar quem acessou. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@nldj Bueno, nestes tipos de coisa não se pode ter "preguiça"  para desenvolver algo que é de extrema importância.

Como expliquei acima, é inviável pegar o IP do usuário local via internet e fazer comparações.

Como alternativa de solução, recomendo que como seu sistema possui login e senha com banco de dados, você deve remodelar seu banco de dados adicionando o que precisa.

 

Você quer identificar se é usuário normal(cliente) ou funcionário. Então você cria uma tabela nova contendo o tipo de cadastro.

ID  Tipo
1   admin
2   funcionario
3   cliente

Nesta tabela o campo ID é auto incrementado.

Com esta tabela pronta,  você modifica a sua tabela atual de usuários, onde na "estrutura" você adiciona um novo campo chamado  Tipo_user.

 

Ainda na tela da estrutura da sua tabela, você procura o lugar dos índices(index) e adiciona um índice do tipo INDEX e selecione o novo campo criaro o Tipo_user.

 

Com isso, você tem os preparativos para fazer um relacionamento 1:N entre a tabela tipo e a tabela usuarios, onde o campo Tipo_user da tabela usuários é a chave estrangeira do campo ID auto incrementado da tabela tipo.

 

Assim, você tem uma identificação direta do usuário que logou. Ou seja, se você fazer um SELECT *  FROM usuarios WHERE Tipo_user = 2  você obtém somente os dados dos usuários registrados como funcionário. Em outras palavras, você pode mostrar uma página php restrita com conteúdos, links e botões diferentes de um cliente.

 

Esta á a solução mais viável para seu problema. Só não pode ter preguiça de desenvolver :thumbsup:

 

Deixo aqui um vídeo que gravei uma vez explicando como fazer relacionamentos no PHPmyadmin

 

 

 

Editado por DiF

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

Obrigado DIF. A sua ideia é excelente. Se tivesse sido feito assim desde o começo, seria bem melhor e mais fácil. Mas, hoje eu tenho tabela de cliente separada e que está relacionado com outras tabelas. Então, se eu unificasse usando "Tipo_user", teria que mexer em várias outras coisas. Melhor eu deixar de preguiça e desenvolver as funções de clientes dentro do painel de funcionários. Muito obrigado pela sua atenção. Abraços,

Editado por DiF
Remover a citação que estava muito grande.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@nldj Não... você não vai unificar as tabelas.

Vai usar elas separadas, através de um relacionamento 1:N onde uma emite o valor da chave primária para chave estrangeira.

Você não vai unificar nada.

 

O que você vai precisar mudar é só criar um novo campo dentro da tabela cliente chamado de  "tipo_cliente"

Este campo apenas vai receber o valor ID correspondente da nova tabela criada "tipo_user".

Esta tabela tipo_user é separada. 

 

Para "juntar"  as duas e fazerem elas se relacionarem, depois de ter feito as dicas que dei no vídeo.. você vai usar o INNER JOIN para juntar elas SEM DE FATO JUNTAR!

 

Boa sorte! :thumbsup:

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×