WSHでUPnP対応ルータからWAN側IPを取得する

自宅サーバのアドレスをDDNSなどに登録する人向け、でしょうか。

Dim deviceFinder
Set deviceFinder = CreateObject("UPnP.UPnPDeviceFinder")

Dim devices, device, service
Set devices =  deviceFinder.FindByType("urn:schemas-upnp-org:service:WANIPConnection:1",  0)
'WANIPConnection がだめなら WANPPPConnection や InternetGatewayDevice を試してみて

For Each device In devices
 For Each service In device.Services
  If (service.ServiceTypeIdentifier = "urn:schemas-upnp-org:service:WANIPConnection:1") _
    Or (service.ServiceTypeIdentifier = "urn:schemas-upnp-org:service:WANPPPConnection:1") Then
   Dim ret, emptyArray(0), outArray(1)
   ret = service.InvokeAction("GetExternalIPAddress", emptyArray, outArray)
   WScript.Echo "ExternalIPAddress = " & outArray(0)
  End If
 Next
Next

XPでは「UPnPユーザーインターフェース」を有効にする。
2000はUPnPに対応していない?(DirectXを入れると動く?)
最初JScriptで作ろうとしたがInvokeActionの引数がVBArray型のため無理なよう。