Как отслеживать сетевую активность изнутри приложения?

Я пытаюсь контролировать сетевую активность на своем iPhone из приложения, которое я разрабатываю. Поддерживает ли iOS команду netstat или что-то подобное, что может сказать мне, что активные и исходящие соединения активны?

Ответ 1

После некоторых поисков я нашел код Apple, используемый для netstat.

Все, что вам нужно, в функции void protopr(uint32_t proto, char *name, int af).

Я тестировал устройство и sysctlbyname("net.inet.tcp.pcblist_n",...) работал.

Это должно быть все, что вам нужно.

Ответ 2

Я не могу это проверить, но из того, что я собираюсь, вам придется использовать sysctl в комбинации с sysctlnametomib или, альтернативно, sysctlbyname для этого:

sysctlbyname("net.inet.tcp.pcblist", ...)

и/или

sysctlbyname("net.inet.udp.pcblist", ...)

Ответ 3

Вы можете использовать пакет burp для этой цели, таким образом вы можете проверить все http-данные, проходящие через ваш телефон. Вы должны установить это на свой компьютер mac/ubuntu/windows, а затем создать прокси-сервер с помощью этого инструмента, а затем изменить свой параметр Wi-Fi в телефоне iphone/android, чтобы использовать ваш компьютер как прокси-сервер, а затем он будет захватывать все трафик ввода/вывода.

Прочитайте полную инструкцию здесь - http://www.engadget.com/2011/02/21/how-to-inspect-ioss-http-traffic-without-spending-a-dime/