2011-06-29 26 views
6

Tôi quan tâm đến việc phát sinh danh sách các kết nối mạng TCP/UDP hoạt động trên thiết bị iOS 4.3. Về cơ bản, tôi đang tìm kiếm cùng một loại thông tin mà người ta nhận được từ việc ban hành lệnh "netstat -anp tcp" (hoặc tương tự, nhưng với udp) trong OS X Darwin.Cách liệt kê các kết nối TCP/UDP trong iOS 4

Tôi đã tìm kiếm Thư viện nhà phát triển iOS của Apple (đặc biệt là NSNetServices, CFNetServices và Trang hướng dẫn sử dụng iOS) và Internet nhưng không có kết quả tốt. Tuy nhiên, có một ứng dụng Netstat iOS (xem http://itunes.apple.com/us/app/netstat/id400071873?mt=8&ign-mpt=uo%3D2) trên mạng, do đó, nó có thể xuất hiện.

Cảm ơn trước cho bất kỳ gợi ý/đề xuất/suy nghĩ hữu ích nào.

+0

Không phải là netstat mã nguồn mở? –

+0

Chắc chắn - nhưng tôi tin rằng nó dựa vào đó là một hệ thống tập tin/proc thông qua đó để súng trường. – RCroasher

+0

Tôi không nghĩ rằng có thể đọc tệp thiết bị trực tiếp trong iOS nên tôi không thấy giải pháp. :/ –

Trả lời

8

Tôi tin rằng bây giờ tôi đã trả lời câu hỏi của riêng mình. Nghĩ rằng tôi đã xem xét kỹ chức năng thư viện sysctl(), nhưng tôi đã không làm thế! Ví dụ, sau đây sẽ mang lại thông tin về các kết nối TCP hiện tại:

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

Để có được thông tin về kết nối UDP, chỉ cần sử dụng một tên thông tin quản lý cơ sở (MIB) khác nhau: net.inet.udp.pcblist.

Để thuận tiện, đây là một liên kết đến trang man iOS thích hợp:

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

Bạn có bất kỳ đề xuất nào về cách "phân tích" dữ liệu được truy xuất từ ​​phương pháp này không? Tôi đang cố gắng để có được tất cả các ổ cắm mở hiện tại. – Sunkas

+1

OK. Nhưng bạn có biết nếu có một cách "liên kết" mỗi kết nối với một quy trình/dịch vụ cụ thể không? – Sunkas

+0

@ JonasAndersson, Bạn phân tích cú pháp dữ liệu như thế nào? xin vui lòng cho một số mã. – virata

Các vấn đề liên quan