Como posso saber quais portas estão abertas em meu dispositivo android e como fechá-las ?

? QnA_J @ | Original: StackOverFlow
---

há uma maneira fácil, para ver quais portas estão abertas em meu dispositivo Android e uma maneira de fechar as portas abertas ?

---

Top 5 Responder

1ik024 @

Você não pode pingar uma porta específica . A " ping" é um pedido de eco ICMP . ICMP é um protocolo de camada de internet e, como tal, não tem o conceito de um "port" .

Você pode usar um soquete para tentar estabelecer uma conexão TCP para a porta . Se ele se conecta, então algo estava escutando para conexões TCP . Se ele não ligar, então era inalcançável, de alguma forma .

Pode-se utilizar um DatagramSocket para tentar enviar um pacote para a porta . Se for bem sucedido, então algo provavelmente está recebendo dados. Se ele falhar, então algo definitivamente deu errado (aliás, uma mensagem de erro ICMP é enviado de volta se um pacote UDP é recebida que se dirige a uma porta que não está aberto para UDP, ou se algo se recusa ativamente o pacote no caminho) .

Você teria que usar ambas as opções acima para verificar tanto TCP e UDP.

Note-se que InetAddress usa uma solicitação ICMP como ping por padrão, mas se ele não tem permissão para fazer isso, ele vai cair para trás na tentativa de estabelecer uma conexão TCP em seu lugar. No entanto, no caso em que ele tem permissão para gerar pacotes ICMP, não há nenhuma maneira de forçá-lo a tentar uma conexão TCP em seu lugar. Então, se você quiser usar esse método, basta usar um Socket.

cortesia http://stackoverflow.com/users/616460/jason-c

2Chris Stratton @

Você pode determinar as portas abertas no momento, lendo as textuais / proc pseudo -arquivos, tais como

/proc/net/tcp
/proc/net/udp

Isso é basicamente o que um comando netstat (onde implementado) faz - você pode querer encontrar e examinar a fonte de uma aplicação netstat simples (que deve ser possível portar tal para java)

No entanto, durante a execução como um ID do usuário app sem privilégios, você só será capaz de fechar sockets pertencentes a seu próprio processo ( ou por meios indiretos envolvendo ptrace ou processo de abate, outros processos que pertencem a sua identificação de usuário ) . Observe também que o encerramento de uma tomada não significa necessariamente fazer essa porta disponível para re- uso imediato.

3Prakash @

Você pode experimentar diferentes comandos de rede através de tempo de execução e verificar os resultados

// netstat -lptu 
// netstat -vat 


Process su = Runtime.getRuntime().exec("netstat -vat ");
4aboujanane @ Create a wifi hotspot on your phone Connect your computer to the hotspot use ipconfig or ifconfig to know the gateway IP adresse ( ie: your phone's IP adress ) Download nmap : http://nmap.org/ Use the nmap command : nmap -sS -Pn -p- your_phone_ip_adress

as portas TCP abertas será mostrado a seguir:

65531 portas fechadas PORT SERVIÇO DE ESTADO 53 / tcp domínio aberto 8187 / tcp desconhecido aberto 38647 / tcp desconhecido aberto 42761 / tcp aberto desconhecido MAC Address: A4: 9A : 58 ::: ** ( Samsung Electronics Co.)

PS : For UDP ports use: nmap -sU -Pn -p- your_phone_ip_adress