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型のため無理なよう。