首页 > 网络应用 > 一个golang写的探测网关是否支持UPNP的代码

218

浏览

0

评论

一个golang写的探测网关是否支持UPNP的代码

作者:stephen | 分类:网络应用 | 标签:

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)

}

}

}

}


本文链接:https://www.stephenwxf.com/post/211.html
原创文章如转载请注明:转载自王显璠的个人博客谢谢!

Copyright Your stephenwxf.com Rights Reserved.