iOS 4

2011-06-29 18 views
6

Ben bir iOS 4.3 cihazda aktif TCP/UDP ağ bağlantılarının listesini türetmek ilgileniyorum TCP/UDP Bağlantıları Liste nasıl. Temel olarak, OS X Darwin'in altında bir "netstat -anp tcp" (veya aynı, fakat udp ile) komutunu yayınlayan aynı türde bilgiyi arıyorum.iOS 4

Ben Apple'ın iOS Geliştirici Kütüphanesi (özellikle NSNetServices, CFNetServices ve iOS'ta Manuel Sayfaları) ve Internet, ama hiçbir iyi sonuçlarla aradık. Yine de orada bir iOS Netstat uygulaması var (bkz. http://itunes.apple.com/us/app/netstat/id400071873?mt=8&ign-mpt=uo%3D2), bu yüzden mümkün görünüyor.

Herhangi bir yararlı işaretçiler/öneriler/düşünceler için şimdiden teşekkür ederiz.

+0

açık kaynak netstat değil mi:

kolaylık sağlamak için, burada uygun iOS adam sayfasına bir bağlantı var? –

+0

Elbette - ama inanıyorum ki orada tüfeği olan bir/proc dosya sistemi var. – RCroasher

+0

Cihaz dosyalarını doğrudan iOS'ta okumak mümkün olduğunu düşünmüyorum, bu yüzden bir çözüm göremiyorum. :/ –

cevap

8

Şimdi kendi sorumu cevapladığımı düşünüyorum. Sysctl() kütüphane fonksiyonuna yeterince yakından baktığımı düşünmüştüm ama yapmadım! Örneğin, aşağıdaki geçerli TCP bağlantıları hakkında bilgi verecektir: net.inet.udp.pcblist:

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

basitçe farklı bir Yönetim Bilgi Tabanı (MIB) adı kullanın, UDP bağlantı hakkında bilgi almak için.

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

Bu yöntemden alınan verileri "nasıl ayrıştıracağınız" konusunda herhangi bir öneriniz var mı? Mevcut tüm açık soketleri almaya çalışıyorum. – Sunkas

+1

Ayrıştırmayı tamamla. Ancak, her bir bağlantıyı belirli bir süreç/hizmete "bağlamanın" bir yolu olup olmadığını biliyor musunuz? – Sunkas

+0

@ JonasAndersson, Verileri nasıl ayrıştırdınız? lütfen biraz kod verin. – virata