2011-06-29 13 views
6

Jestem zainteresowany wyprowadzeniem listy aktywnych połączeń sieciowych TCP/UDP na urządzeniu z systemem iOS 4.3. Zasadniczo, szukam tego samego rodzaju informacji, jakie uzyskuje się od wydania polecenia "netstat -anp tcp" (lub tego samego, ale z udp) pod OS X Darwin.Jak wyświetlić połączenia TCP/UDP w iOS 4

Przeszukałem bibliotekę programistów Apple iOS (w szczególności NSNetServices, CFNetServices i strony podręcznika iOS) oraz Internet, ale bez dobrych wyników. Jest tam jednak aplikacja Netstat na iOS (patrz http://itunes.apple.com/us/app/netstat/id400071873?mt=8&ign-mpt=uo%3D2), więc wydaje się to możliwe.

Z góry dziękuję za przydatne wskazówki/sugestie/przemyślenia.

+0

Czy nie netstat open source? –

+0

Pewnie - ale uważam, że opiera się na systemie plików/proc, przez który można strzelać. – RCroasher

+0

Nie sądzę, że można odczytać pliki urządzeń bezpośrednio w systemie iOS, więc nie widzę rozwiązania. :/ –

Odpowiedz

8

Wierzę, że odpowiedziałem już na własne pytanie. Pomyślałem, że przyjrzałem się wystarczająco dobrze funkcji biblioteki sysctl(), ale nie miałem! Na przykład, co następuje przyniesie informacje o bieżących połączeń TCP:

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

Aby uzyskać informacje na temat połączenia UDP, po prostu użyć innego Management Information Base (MIB) Nazwa: net.inet.udp.pcblist.

Dla wygody, oto link do odpowiedniej strony iOS człowieka:

http://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/sysctlbyname.3.html 
+1

Czy masz jakieś sugestie, jak "przeanalizować" dane pobrane z tej metody? Próbuję uzyskać wszystkie obecne otwarte gniazda. – Sunkas

+1

Przygotowałem parsowanie. Ale czy wiesz, że istnieje sposób "połączenia" każdego połączenia z konkretnym procesem/usługą? – Sunkas

+0

@ JonasAndersson, Jak analizowałeś dane? proszę podać kod. – virata

Powiązane problemy