0
私はasyncsocketフレームワークを使用してIPアドレスを取得しようとします。それはイーサネットケーブルを介して行うときは、以下の方法がうまくいきます。 しかし、Wi-Fiアクセスポイントを使ってIPアドレスを取得しようとすると、nilが返されます。ここでWifiアドレス問題を取得する
はメソッドです:私たちが持っていた
- (NSData *)wifiAddress
{// iPhoneには、無線LAN常に "en0の"
NSData *result = nil;
struct ifaddrs *addrs;
const struct ifaddrs *cursor;
if ((getifaddrs(&addrs) == 0))
{
cursor = addrs;
while (cursor != NULL)
{
NSLog(@"cursor->ifa_name = %s", cursor->ifa_name);
if (strcmp(cursor->ifa_name, "en0") == 0)
{
if (cursor->ifa_addr->sa_family == AF_INET)
{
struct sockaddr_in *addr = (struct sockaddr_in *)cursor->ifa_addr;
NSLog(@"cursor->ifa_addr = %s", inet_ntoa(addr->sin_addr));
result = [NSData dataWithBytes:addr length:sizeof(struct sockaddr_in)];
cursor = NULL;
}
else
{
cursor = cursor->ifa_next;
}
}
else
{
cursor = cursor->ifa_next;
}
}
freeifaddrs(addrs);
}
return result;
}
(NSString *)インターフェイスパラメータには何を挿入すればよいですか? – Sergio
"en"(例えばen0、en1など)を持つものはすべて捕捉されるので、単に "en"を使用します。 – tjg184