22
22
#import < UIKit/UIKit.h>
23
23
#endif
24
24
25
+ #ifndef kQNDnsDefaultIPv4IP
26
+ #define kQNDnsDefaultIPv4IP " 114.114.114.114"
27
+ #endif
28
+
29
+ #ifndef kQNDnsDefaultIPv6IP
30
+ #define kQNDnsDefaultIPv6IP " 2400:3200::1"
31
+ #endif
32
+
25
33
void qn_nat64 (char *buf, int buf_size, uint32_t ipv4addr) {
26
34
bzero (buf, buf_size);
27
35
// nat 4 to ipv6
@@ -99,11 +107,11 @@ int qn_local_ip_internal(char *buf, int buf_size, const char *t_ip) {
99
107
}
100
108
101
109
int qn_localIp (char *buf, int buf_size) {
102
- int ret = qn_local_ip_internal (buf, buf_size, " 8.8.8.8 " );
110
+ int ret = qn_local_ip_internal (buf, buf_size, kQNDnsDefaultIPv4IP );
103
111
if (ret != 0 ) {
104
112
#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
105
113
if (![QNIP isIpV6FullySupported ]) {
106
- ret = qn_local_ip_internal (buf, buf_size, " 64:ff9b::808:808 " );
114
+ ret = qn_local_ip_internal (buf, buf_size, kQNDnsDefaultIPv6IP );
107
115
}
108
116
#endif
109
117
}
@@ -116,7 +124,8 @@ + (BOOL)isV6 {
116
124
struct addrinfo hints = {0 }, *ai;
117
125
hints.ai_family = AF_UNSPEC;
118
126
hints.ai_socktype = SOCK_STREAM;
119
- int ret = getaddrinfo (" 8.8.8.8" , " http" , &hints, &ai);
127
+ hints.ai_flags = AI_NUMERICHOST;
128
+ int ret = getaddrinfo (kQNDnsDefaultIPv4IP , " http" , &hints, &ai);
120
129
if (ret != 0 ) {
121
130
return NO ;
122
131
}
@@ -126,7 +135,7 @@ + (BOOL)isV6 {
126
135
#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
127
136
if (![QNIP isIpV6FullySupported ] && !ret) {
128
137
char buf[64 ] = {0 };
129
- ret = qn_local_ip_internal (buf, sizeof (buf), " 64:ff9b::808:808 " );
138
+ ret = qn_local_ip_internal (buf, sizeof (buf), kQNDnsDefaultIPv6IP );
130
139
if (strchr (buf, ' :' ) != NULL ) {
131
140
result = YES ;
132
141
}
@@ -156,7 +165,7 @@ + (NSString *)adaptiveIp:(NSString *)ipv4 {
156
165
#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
157
166
if (![QNIP isIpV6FullySupported ] && family == AF_INET) {
158
167
char buf2[64 ] = {0 };
159
- ret = qn_local_ip_internal (buf2, sizeof (buf2), " 64:ff9b::808:808 " );
168
+ ret = qn_local_ip_internal (buf2, sizeof (buf2), kQNDnsDefaultIPv6IP );
160
169
if (strchr (buf2, ' :' ) != NULL ) {
161
170
bzero (buf, sizeof (buf));
162
171
qn_nat64 (buf, sizeof (buf), *((uint32_t *)addr));
0 commit comments