Come posso sapere quali porte sono aperte sul mio dispositivo Android e come chiudere loro ?

? QnA_J @ | Original: StackOverFlow
---

c'è un modo semplice, per vedere quali porte sono aperte sul mio dispositivo Android e un modo per chiudere le porte aperte ?

---

Top 5 Risposta

1ik024 @

Non è possibile eseguire il ping una porta specifica . A " ping" è una richiesta di eco ICMP . ICMP è un protocollo di livello internet e come tale non ha il concetto di un "port " .

È possibile utilizzare un Socket per tentare di stabilire una connessione TCP alla porta . Se si collega, poi qualcosa si è in ascolto per le connessioni TCP . Se non si connette, poi è stato irraggiungibile in qualche modo .

È possibile utilizzare un DatagramSocket per tentare di inviare un pacchetto alla porta . Se ci riesce, allora qualcosa sta probabilmente ricevendo dati . Se fallisce, allora qualcosa sicuramente è andato storto ( per inciso, un messaggio di errore ICMP viene restituito quando un pacchetto UDP viene ricevuto, che si rivolge a una porta che non è aperto per UDP, o se qualcosa non attivamente il pacchetto durante il tragitto ) .

Dovresti usare entrambe le sopra per verificare sia TCP e UDP .

Si noti che InetAddress utilizza una richiesta ICMP come ping di default, ma se non ha il permesso di farlo, ricadrà sul tentativo di stabilire una connessione TCP invece . Tuttavia, nel caso in cui esso ha permesso di generare pacchetti ICMP, non c'è modo di forzare per tentare una connessione TCP invece . Quindi, se si desidera utilizzare questo metodo, basta usare un Socket .

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

2Chris Stratton @

È possibile determinare le porte aperte da leggendo le / proc pseudo -files testuali come

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

Questo è fondamentalmente ciò che un comando netstat ( dove implementato ) non - si potrebbe desiderare di trovare ed esaminare la fonte di una semplice implementazione netstat ( dovrebbe essere possibile portare tale da java )

Tuttavia, quando si esegue come un app userid non privilegiato, sarà solo in grado di chiudere i socket appartenenti al proprio processo ( o tramite tortuosi coinvolgono ptrace o l'abbattimento, gli altri processi appartenenti al tuo userid ) . Si noti inoltre che la chiusura di un socket non rende necessariamente che porta disponibile per immediato riutilizzo .

3Prakash @

È possibile provare i comandi di rete differenti attraverso runtime e controllare i risultati

// 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

le porte TCP aperte verranno visualizzati come segue :

65.531 porte chiuse PORT SERVIZIO DI STATO 53 / tcp settore aperto 8187 / tcp sconosciuto aperta 38647 / tcp sconosciuto aperta 42761 / tcp aperta sconosciuto MAC Address : A4 : 9A : 58 ::: ** ( Samsung Electronics Co. )

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