package main
import (
"fmt"
"log"
"github.com/huin/goupnp"
"github.com/huin/goupnp/dcps/internetgateway1"
)
func main() {
// 发现UPnP网关设备
devices, err := goupnp.DiscoverDevices(internetgateway1.URN_WANConnectionDevice_1)
if err != nil {
log.Fatalf("发现UPnP设备失败: %v", err)
}
if len(devices) == 0 {
fmt.Println("未找到支持UPnP的网关设备")
return
}
fmt.Printf("找到 %d 个UPnP网关设备\n", len(devices))
for _, dev := range devices {
// 获取WAN IP连接服务
clients, _, err := internetgateway1.NewWANIPConnection1ClientsByURL(dev.Location)
if err != nil {
fmt.Printf("无法获取WAN IP连接服务: %v\n", err)
continue
}
// 检查UPnP功能是否可用
for _, client := range clients {
externalIP, err := client.GetExternalIPAddress()
if err != nil {
fmt.Printf("无法获取外部IP地址: %v\n", err)
} else {
fmt.Printf("UPnP支持,外部IP地址: %s\n", externalIP)
}
}
}
}
发表评论: