Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过objective-c获取iphone上的tcp/udp开放端口列表?_Iphone_Objective C_Port - Fatal编程技术网

如何通过objective-c获取iphone上的tcp/udp开放端口列表?

如何通过objective-c获取iphone上的tcp/udp开放端口列表?,iphone,objective-c,port,Iphone,Objective C,Port,嗨,我想通过objective-c获取iphone上所有tcp/udp打开端口状态列表?像Linux上的netstat一样,您知道如何实现它或在任何API中实现它吗 你能做到吗?谢谢。你不能在iPhone上运行netstat(除非你越狱),但是你可以做netstat所做的事情。查看中的函数protopr。我验证了您可以使用“net.inet.tcp.pcblist”作为名称调用sysctlbyname,并返回一组数据。我没有像netstat那样解释数据 测试用例: size_t len = 0;

嗨,我想通过objective-c获取iphone上所有tcp/udp打开端口状态列表?像Linux上的netstat一样,您知道如何实现它或在任何API中实现它吗 你能做到吗?谢谢。

你不能在iPhone上运行
netstat
(除非你越狱),但是你可以做
netstat
所做的事情。查看中的函数
protopr
。我验证了您可以使用
“net.inet.tcp.pcblist”
作为名称调用
sysctlbyname
,并返回一组数据。我没有像
netstat
那样解释数据

测试用例:

size_t len = 0;
if (sysctlbyname("net.inet.tcp.pcblist", 0, &len, 0, 0) < 0) {
    perror("sysctlbyname");
} else {
    char *buf = malloc(len);
    sysctlbyname("net.inet.tcp.pcblist", buf, &len, 0, 0);
    NSData *data = [NSData dataWithBytesNoCopy:buf length:len];
    NSLog(@"data = %@", data);
}
size\u t len=0;
if(sysctlbyname(“net.inet.tcp.pcblist”,0,&len,0,0)<0){
perror(“sysctlbyname”);
}否则{
char*buf=malloc(len);
sysctlbyname(“net.inet.tcp.pcblist”,buf和len,0,0);
NSData*data=[NSData data WITHBYTESNOPY:buf length:len];
NSLog(@“数据=%@”,数据);
}
运行iOS 5.0的我的iPad 2上的输出:

2011-11-17 19:59:34.712 keyboardtest[29423:707] data = <18000000 2c000000 9e2a0900
00000000 c60e5d00 00000000 0c020000 00000000 00000000 00000000 00000000 d4d3d4d2
00000000 00000000 ...

2011-11-17 19:59:34.712键盘测试[29423:707]数据=要让rob mayoff的答案获得的数据可读,你只需要看一下。在它中,您拥有解析数据所需的一切

看看我对海森伯格问题的另一个回答:


在my中,您可以看到数据在代码的哪个部分是可读的,也就是当我将值添加到字典中时。

Hi:我使用以下代码,但不输出任何内容,size\u t size;sysctlbyname(“net.inet.tcp.pcblist”,NULL,&size,NULL,0);字符*端口=malloc(大小);sysctlbyname(“net.inet.tcp.pcblist”、端口和大小,NULL,0);NSString*portList=[NSString stringWithCString:port];自由港;NSLog(@“%@”,端口列表);谢谢关于如何解释它的任何线索?你可以在iphone上获得打开的TCP/UDP端口连接列表,可能重复。无需越狱。appstore上没有应用拒绝。见答案