Как я могу знать, какие порты открыты на моей андроид устройства и, как закрыть их ?

? QnA_J @ | Original: StackOverFlow
---

естьпростой способ, чтобы увидеть, какие порты открыты на моей Android устройства и пути, чтобы закрыть открытые порты?

---

Top 5 ответ

1ik024 @

Вы не можете пинговать определенный порт . " Пинг " является эхо-запросаICMP . ICMP являетсяпротоколом Интернета слой и как таковая не имеет никакого представления о "порт" .

Вы можете использовать гнезда, чтобы попытаться установить соединение TCP на порт . Если соединение происходит, значит что-то слушает соединения TCP. Если соединение не устанавливается, то был недоступен в некотором роде.

Вы можете использовать DatagramSocket пытаться отправить пакет в порт. Если это удастся, то что-то, вероятно, получает данные. Если это не удается, то что-то определенно пошло не так (кстати, сообщениеоб ошибке ICMP передается обратно, еслипакет UDP Получается, что адресовано к порту, который не открыть для UDP, или если что-то активно отказывается от пакета в пути) .

Вы должны были бы использовать обавыше, чтобы проверить как TCP и UDP.

Обратите внимание, что InetAddress использует запрос ICMP как пинг по умолчанию, но если он не имеет на это разрешение, что он упадет обратно на попытке установить соединение TCP вместо этого. Тем не менее, в случае, когда у него есть разрешение, чтобы генерировать ICMP пакеты, нет никакого способа, чтобы заставить его попытка соединения TCP вместо . Так что если вы хотите использовать этот метод, просто используйте гнезда.

Предоставлено http://stackoverflow.com/users/616460/jason-c

2Chris Stratton @

Вы можете определить, открытых в данный момент порты, читая текстовые / Труды Псевдо- файлы, такие как

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

Это в основном тоNetStat команду (где реализовано) делает - вы можете найти и изучить источник простой реализации NETSTAT (это должно быть возможно к порту такое Java)

Тем не менее, при работе в качестве непривилегированного приложения идентификатор пользователя, вы сможете только, чтобы закрыть розетки, принадлежащих к вашему собственному процессу (или окольными средствами, связанных с ptrace или процесс убит, другие процессы, принадлежащие обычный пользователь ). Также обратите внимание, что закрытие сокета не обязательно делать что -порт для непосредственной повторного использования.

3Prakash @

Вы можете попробовать различные сетевые команды через выполнения и проверки результатов

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

открытые порты TCP будет показано следующим образом:

65531 закрытые порты PORT Государственная служба 53 / TCP открытая область 8187 / TCP открыт неизвестно 38647 / TCP открыт неизвестно 42761 / TCP открыт неизвестно MAC-адрес: A4: 9A : 58 ::: ** (Samsung Electronics Co. )

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