2日間調べたのですが、NAT Traversal技術のサンプルコードが見つけられませんでした。 どうか皆様お助けください。
NAT Traversal技術で実現したいのは…
1.ルータの有無を知ること。
2.グローバルIPを知ること。
3.できればhttpポートを開くこと。
> 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
2のサンプルもあるみたいです。
http://www.delphipraxis.net/topic59019,0,asc,0.html
えーとね様、かみづ様
サンプルのリンクどうもありがとうございます。
昼から紹介していただいたコードにコメント(ドイツ語ですか?)があり、「UPUP.dllをインポートするよう」みたいなことが書き込まれていたものですからActiveXの追加をチェックしました。 しかし、なぜかそれらしきものはなく、UPUP.dllのあるSystem32のフォルダを調べてみてもUPUP.ocxもありませんでした。 当方はD7なのですが、みなさんはインポートできるものなのでしょうか? また関連キーワードでヒットしたコードにはuses節にUPNPLib_TLBなるものが追加されていたのですが、「UPNPLib_TLB.pas」なるものがもともとあるのでしょうか? もしよろしければお教えください。
> UPUP.dllのあるSystem32のフォルダを調べてみてもUPUP.ocxもありませんでした。
お探しのファイル名が間違ってませんか?UPNP.dll です。
> みなさんはインポートできるものなのでしょうか?
XP Pro SP2 + Delphi 2006 Update2 の場合
コンポーネントのインポート -> タイプライブラリの取り込みで出来ました。
えーとね様、かみづ様
細やかにお教えくださいましてありがとうございます。タイプライブラリの取り込みもできました。 ただし、D7ではプロジェクト>タイプライブラリの取り込みでした。
後はコードを試すだけです。 これでひとまず解決しました。 ありがとうございます。
ツイート | ![]() |