私はiOSの初心者で、卒業の設計はiOSでパケットをキャプチャできるアプリを開発することです。
私は libpcap ライブラリを使用しています。私の iPhone は JB で、既に root としてアプリを実行できます。具体的には、net_interface :en0 を取得できますが、パケットをキャプチャできません。pcap_next() は常に null を返します。
これは私のコードです:
-(IBAction)capture:(id)sender{
char error_content[PCAP_ERRBUF_SIZE];
char *net_interface=NULL;
net_interface=pcap_lookupdev(error_content);
NSString *devstr = [[NSString alloc] initWithUTF8String:net_interface];
text1.text=devstr;
pcap_t *pcap_handle;
pcap_handle = pcap_open_live(net_interface, BUFSIZ, 0, 2, error_content);
struct pcap_pkthdr packet_capture;
const u_char *packet_flag;
packet_flag= pcap_next(pcap_handle, &packet_capture);
if (!packet_flag) {
text2.text=@"capture failed";
}
else{
NSString *length =[[NSString alloc]initWithFormat:@"the length of packet is %d",packet_capture.len];
text2.text=length;
[length release];
}
pcap_close(pcap_handle);
}
@end
誰かがそれについて同様の経験を持っているか、それを解決する方法を知っている場合は、 liangweidarth@gmail.com 経由で私に連絡していただければ幸いです。