iPhoneのIPを取得する際にハマった内容。

iPhone上で自分自身のIPを知る為には、まず自分自身のホスト名を知る必要がある。
iPhoneで、自分自身のホスト名は以下のようにして取得するが、ホスト名に日本語が混じっているとうまく取得できない。

char HostName[256];
memset(baseHostName, 0, sizeof(HostName));
gethostname(baseHostName, 255);


iPhone上での gethostname() はホスト名にマルチバイトが混ざっていると上手く動かないようだ。ちなみにiPhoneに付けている名前は「森本 の iPhone」だった。「iPhone」と半角英数字のみに直すと上手く取得できた。
ホスト名が取得できないと自分自身のアドレスがわからない。。。日本語が混じっているホスト名のユーザなんて山ほどいるし。。。困った。この問題の解決方法がわからない。。。
どなかた知っている方がいらしたらご教授お願い致します。
解決しました。

ちなみに、getaddrinfo()で ホスト名 "localhost" でIPを取得すると 127.0.0.1 が取得できる。ここで取得したいのはWi-Fiに繋いでいるときのルータ等から実際に割り振られている 10.0.0.10 等のIPである。


以下の方法でもホスト名を取得できるけど、iPhone上で実行すると tss.panda-world.ne.jp という名前のホスト名を取得してしまうのでIP取得には使えない。

NSString * hostName = [[NSProcessInfo processInfo] hostName];

panda-world.ne.jp ってなんだろう?と思って調べてみると、softbankが取得しているドメインのようだ。
Windowsでパスワードを設定してZIPファイルを生成した場合、Macでは解凍できないことがある(エラーが出る)。
ZIPファイルをダブルクリックして解凍時にエラーが出る場合は以下の方法で解凍することができる。

1.まず、"ターミナル"を起動する。
2.ターミナルで unzip コマンドを入力する。
3.そして、引数に解凍したいファイルのパスを入力する(ZIPファイルをターミナルウインドウにドラッグ&ドロップするとパスが入力される)
$Cocoaを飲む-ターミナル
4.エンターを押してコマンドを実行するとパスワードを聞かれるので、パスワードを入力しエンターを押す
5.パスワードが合っていると解凍される。
2/12更新
WEBサイト上で選択可能な2月の全ての日程にて午前、午後共に空きがございます。
3月から有料講習準備の為、無料講習は午後の部のみとなりますのでご注意下さい。

-------------------------------------------------------------
2月8日以降の講習はまだまだ空きがあります。お申し込みお待ちしております。
iPhoneスクールはこのような感じで行っております。

$Cocoaを飲む-スクール風景

3月以降の日程と講習内容ついては2月初めまでにはWEBサイトにアップできる予定ですので、今後もよろしくお願い致します。
MACASEL株式会社ではiPhoneアプリ開発スクールを開講しました。

プレスリリース後の反響の大きさに嬉しい悲鳴を上げております。

始まったばかりですが、さまざまな要望を取り入れ利用しやすい環境を整えてまいりますので、お申し込み、お問い合わせ、どしどしお待ちしております。