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が取得しているドメインのようだ。
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が取得しているドメインのようだ。