NAT Traversal技術をおしえてください

解決


納豆  2006-11-23 08:03:26  No: 24018  IP: 192.*.*.*

2日間調べたのですが、NAT Traversal技術のサンプルコードが見つけられませんでした。  どうか皆様お助けください。

NAT Traversal技術で実現したいのは…
1.ルータの有無を知ること。
2.グローバルIPを知ること。
3.できればhttpポートを開くこと。

編集 削除
えーとね  2006-11-23 12:10:47  No: 24019  IP: 192.*.*.*

> 1.ルータの有無を知ること。
IUPnPDeviceFinder のFindByType でしょうか。
urn:schemas-upnp-org:device:InternetGatewayDevice:1 を探すのだと思います。

> 2.グローバルIPを知ること。
IStaticPortMapping のget_ExternalIPAddress でしょうか。

> 3.できればhttpポートを開くこと。
IUPnPService のInvokeAction でしょうか。

試していませんが、1.と3. に役立ちそうなサンプルが載っています。
http://www.delphipraxis.net/post598522.html

編集 削除
かみづ  2006-11-23 12:21:42  No: 24020  IP: 192.*.*.*

2のサンプルもあるみたいです。
http://www.delphipraxis.net/topic59019,0,asc,0.html

編集 削除
納豆  2006-11-23 18:17:26  No: 24021  IP: 192.*.*.*

えーとね様、かみづ様
サンプルのリンクどうもありがとうございます。
昼から紹介していただいたコードにコメント(ドイツ語ですか?)があり、「UPUP.dllをインポートするよう」みたいなことが書き込まれていたものですからActiveXの追加をチェックしました。  しかし、なぜかそれらしきものはなく、UPUP.dllのあるSystem32のフォルダを調べてみてもUPUP.ocxもありませんでした。  当方はD7なのですが、みなさんはインポートできるものなのでしょうか?  また関連キーワードでヒットしたコードにはuses節にUPNPLib_TLBなるものが追加されていたのですが、「UPNPLib_TLB.pas」なるものがもともとあるのでしょうか?  もしよろしければお教えください。

編集 削除
えーとね  2006-11-23 19:16:30  No: 24022  IP: 192.*.*.*

> UPUP.dllのあるSystem32のフォルダを調べてみてもUPUP.ocxもありませんでした。
お探しのファイル名が間違ってませんか?UPNP.dll です。

> みなさんはインポートできるものなのでしょうか?
XP Pro SP2 + Delphi 2006 Update2 の場合
コンポーネントのインポート -> タイプライブラリの取り込みで出来ました。

編集 削除
納豆納得  2006-11-23 20:11:49  No: 24023  IP: 192.*.*.*

えーとね様、かみづ様
細やかにお教えくださいましてありがとうございます。タイプライブラリの取り込みもできました。  ただし、D7ではプロジェクト>タイプライブラリの取り込みでした。
後はコードを試すだけです。  これでひとまず解決しました。  ありがとうございます。

編集 削除