Java como saber que tipo de dispositivo esta usar um IP.
Gostaria de saber se existe alguma forma de validar se um IP, pertence a um computador, a um dispositivo móvel, … Isto é diferenciar os tipos do dispositivo a partir do IP.
Obrigado pela atenção
Pelo IP, creio que não seja possível, pois o mesmo apenas representa um endereço.
Não sei se é o caso, mas se você estiver querendo descobrir o tipo de dispositivo através de uma requisição HTTP, você consegue vendo o header User Agent.
1 curtida
Gostaria de saber a partir de uma requisição em socket java. Não sei se é exatamente esse protocol que é usado pelo socket.
Mas a partir do socket não da para ter esse tipo de informação???
Rapaz… acho que dá não. O que é possível é, se o acesso ao socket for numa rede local, procurar o host pelo IP nesta rede local e pegar o nome, e a partir do nome fazer a identificação. Mesmo assim, não acho que seja garantido.
Boa Tarde,
Danielcarvalho555
Pelo IP acredito que não seja possível, pois quando ocorre o acesso , você tera somente o acesso ao ip público do ponto que está realizando o acesso, nesse ip público podemos ter “N” computadores e “N” dispositivos móveis. Mas caso você possa informar, detalhe melhor sua necessidade, pois assim podemos talvez apresentar um novo caminho para você seguir.
att,
1 curtida
O Socket serve apenas para fazer a comunicação. O que é enviado é você quem define.
Se você está programando o socket do cliente (aquele que você que saber se é um computador ou dispositivo móvel), adicione essa informação (o tipo do equipamento) aos dados enviados pelo cliente para o servidor.
Abraço.
1 curtida
Boa Tarde,
robsonapsilva
Antes peço desculpa pelo atraso a resposta
O que preciso fazer é seguinte não estarei a trabalhar com os IPs públicos, serão todos IP de uma rede local.
O problema é o seguinte:
-> 1º Tenho de fazer uma pesquisa na rede local para obter todos os IPs (resolvido)
-> 2º A partir dos IP obtidos preciso identificar o tipo de maquina que o possui (É aqui que resido os problema)
O Socket serve apenas para fazer a comunicação. O que é enviado é você quem define.
Se você está programando o socket do cliente (aquele que você que saber se é um computador ou dispositivo móvel), adicione essa informação (o tipo do equipamento) aos dados enviados pelo cliente para o servidor.
Pensei nessa solução mas não poderá ser aplicado para o meu problema
O IP é só um número usado para roteamento dos pacotes, e não contém a informação do tipo de equipamento a qual pertence. Logo, só com base no IP, não dá para saber o que o equipamento é. Se o cliente não pode te mandar essa informação (que é o que te sugeri e o que os navegadores fazem por exemplo, enviando o user agent), então você está com pouquíssimas opções.
Se os dispositivos usam IP fixo, e tipos diferentes de equipamentos estão em sub-redes diferentes (exemplo: computadores começando com 192.168.10, e outros dispositivos com 192.168.11), então você poderia fazer um filtro nesse sentido. Obviamente, isso é sujeito à falhas e imprecisões.
Abraço.
1 curtida
Boa Tarde
Danielcarvalho555,
Então rapaz nesse caso, eu tbm não estou vendo como controlar isso via ip, assim como o TerraSkilll lhe informou seria via agent ou mascara. Caso essas possibilidades não sejam possíveis a única maneira que me vem a primeiro momento seria uma base de dados para controlar isso. Talvez não seja muito elegante mas resolveria. Poderia funcionar da seguinte forma:
-
O Client verifica se o dispositivo já tem cadastro com na base de dados, caso não tenha você pega essas informações via S.O e cadastra;
-
Para manter atualizado o ip em relação com o dispositivo na base você pode criar uma task que roda de hora em hora para consultar o ip do dispositivo no banco com o do S.O caso estejam diferentes você atualizada o banco de dados.
att,
Boa tarde a todos
De acordo com a ultima resposta que recebi do robsonapsilva fiquei com com relação ao S.O.
Não sei se o S.O que referes aqui é o Sistema Operativo ou outra coisa.
Mas caso seja o Sistema Operativo isso significa que teria de ter alguma aplicação client em todos os hosts conectado a rede, enviado o IP e o seu respectivo tipo de tempo em tempo para a base de dados.
Se for isso, resolveria mas não aplicaria a minha situação.
Imagina agora eu querendo esse tipo de informação numa ponto de acesso publico onde as pessoas livremente podem se conectar a rede. Com certeza muitas das pessoas que conectaram a essa rede não terá a minha aplicação cliente instalado na sua maquina de maneira atualizar a base de dados de tempo em tempo.
OK, isso resolveria o problema caso for numa rede interna fechado a senha onde todos os host que pedem conectar-la seriam conhecidos por mim.
Obrigado.