- PR -

.NET Compact FrameworkでIPアドレスを取得する方法

1
投稿者投稿内容
たにぞー
会議室デビュー日: 2004/10/19
投稿数: 5
投稿日時: 2005-06-30 21:49
いつも参考にさせてもらっています。

表題の件で、ご存知の方がいらっしゃればと思い投稿してみました。

現在PDA上で.NET Compact Frameworkを利用しアプリ作成をしているのですが、
PDA上でIPを取得する必要があり、以下のような形で取得しています。

string ipAddress = Dns.Resolve(Dns.GetHostName()).AddressList[0].ToString();

これで取得出来ていた訳ですが、時々PDAのネットワーク設定で入れたIP以外の
値が返ってくることがあり、この辺の現象を洗ってみたところ有線でActiveSyncを
つなげたままで、ワイヤレスLANを有効にしていると設定値以外にもう一つ
IPが取得されていることが分かりました(AddressListが複数件)。

見たいのはワイヤレスLANで設定したIPなのですが、

・複数ある場合に、ActiveSyncのIPとそうでないIPの区別がつく方法はあるのか?
・区別がつかないのであれば、PDAのIP設定を直接調べる手段はないか?

PDA上で何かINIファイルやレジストリ的なものがないのか?調べてみたのですが、
いかんせんWindowsCEの環境に疎い為、なかなか答えにたどりつけません。

何かこの辺の知識、もしくは資料をご存知の方いらっしゃいましたら、ご助言
いただければと思います。

ちなみに開発言語はC#を使っています。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-07-01 11:41
IPHelper APIのGetAdaptersAddresses等を使えば取得できるはずです。

ただし何のためにIPアドレスを取得するのか、本当に取得する必要があるのかな、もう一度しっかり検討したほうがよいでしょう。Socket通信をするアプリケーションが自分のIPアドレスを意識しなくてはならない事は稀です。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
たにぞー
会議室デビュー日: 2004/10/19
投稿数: 5
投稿日時: 2005-07-01 22:00
甕星様、レスありがとうございます。

> IPHelper APIのGetAdaptersAddresses等を使えば取得できるはずです。

出来れば.NET CFのクラスで実現したいんですが、これしか無ければ
これで対応するしかなさそうですね。検討させていただきます。

> ただし何のためにIPアドレスを取得するのか、本当に取得する必要があるのかな、
> もう一度しっかり検討したほうがよいでしょう。Socket通信をするアプリケーション
> が自分のIPアドレスを意識しなくてはならない事は稀です。

もちろんわざわざ自分のIPを取得するというのはそうそう無いとは思います。
ただ(詳細は申し上げれませんが)今回作成しているアプリではそれを取得する
仕様になっている為、その手段を探している次第です。
1

スキルアップ/キャリアアップ(JOB@IT)