STUN-iOS项目无法显示公共IP

时间:2015-06-19 09:02:56

标签: ios stun

现在我在iOS上遇到STUN协议问题。 我在Github上下载了这个项目https://github.com/soulfly/STUN-iOS 但是,当我运行该项目时。它只显示日志

2015-06-19 15:55:08.245 STUN[4669:607] STUN server: stunserver.org 2015-06-19 15:55:08.247 STUN[4669:607] STUN Binding Request=<00010000 2112a442 ab8b1ef9 7347bf10 e98c817b> 2015-06-19 15:55:08.275 STUN[4669:607] STUN didSendDataWithTag=1002

我无法展示我需要的公共IP。

请给我解决问题的建议。非常感谢

2 个答案:

答案 0 :(得分:0)

NSString *hostN = @"stunserver.org";
struct hostent* phot;
phot = gethostbyname(hostN.UTF8String);
if(phot) {
    struct in_addr ip_addr;
    memcpy(&ip_addr, phot->h_addr_list[0], 4);
    char *ip = (char*)malloc(sizeof(char)*20);
    inet_ntop(AF_INET, &ip_addr, ip, 20);
    NSString *ipStr = [NSString stringWithUTF8String:ip];
    free(ip);
    NSLog(@"ip:%@", ipStr);
}

并包含一些头文件

#include <netdb.h>
#include <sys/socket.h>
#include <arpa/inet.h>

答案 1 :(得分:0)

我找到了为什么&#34; STUN-iOS项目&#34;我们跑步时无法显示公共IP。

原因:服务器stunsever.org不起作用。

解决方案:在文件tableA.Include(x => x.tableBChilds).Where(tableA => tableA.tableBChilds.Any(b => b.R== 1)).ToList(); 中,您只需将代码STUNClient.h更改为#define STUNServer @"stunserver.org"即可。它工作正常。