ローカルについている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];
}