ローカルについているIPアドレスを全て表示 (NSHost)
NSHostを使って手元の機器に関連するIPアドレスを全て表示する方法です。
NSHostのcurrentHostを使うと、自ノードに関連付けられたNSHostが取得できます。 currentHostを利用して、addressesを行うとNSArrayによって表現されたIPアドレス情報が得られます。 各IPアドレスはNSStringによる文字列として表現されています。
サンプルコード
IPアドレス情報取得サンプルを以下に示します。 IPv4/IPv6両方の設定がある環境では、IPv4とIPv6の両方が表示されます。
#import <Cocoa/Cocoa.h>
int main()
{
id pool = [[NSAutoreleasePool alloc] init];
// ローカルノードに関連するNSHostを取得
NSHost *local;
local = [NSHost currentHost];
// IPアドレス一覧を取得
NSArray *addrs = [local addresses];
// 取得したIPアドレス一覧を表示
int i;
for (i=0; i<[addrs count]; i++) {
NSLog([addrs objectAtIndex:i]);
}
[pool release];
}