视频上云/网络穿透/拉转推工具EasyNTS设备IP地址返回数据与实际IP匹配的筛选机制优化
目前TSINGSEE青犀视频已经把EasyNTS的功能进行了扩展,扩大了EasyNTS的使用范围,关于新版EasyNTS的使用方法,我们在之前的博文中也有介绍,大家可以了解一下:EasyNTS上云网关配置手册介绍、EasyNTS上云网关推流直播实现流程
我们研发在客户现场对EasyNTS平台的测试当中发现,EasyNTS获取设备列表界面下,其中ip地址的那一栏,出现一大串的html的源码,本来应该是获取设备所在环境的外网ip,但是却是获得一大串的文本信息。
经过排查我们了解到,这是由于客户环境导致的问题,该客户网络是有限制的,有些地址无法被访问到,导致在获取外网ip的时候没有数据可获取,最后返回一大串html的文本数据,是由于代码中没有对返回的数据进行校验。
因此我们不仅要确保地址访问无误,而且要在获取外网ip的时候,对返回的数据进行校验,如果和外网ip数据不匹配,就返回空的字符串。
参考代码如下:
func WanIP() string {
for {
if ip, err := HttpGet("http://myexternalip.com/raw"); err == nil {
//防止有些客户的网络出现限制,所以对获取的ip进行校验
if !checkIp(ip) {
global.WanIP = ""
log.Println("wan ip: 网络限制 ", )
} else {
global.WanIP = ip
log.Println("wan ip:", ip)
}
}
time.Sleep(time.Minute)
}
}
func checkIp(ip string) bool {
bits := strings.Split(ip, ".")
if len(bits) != 4 {
return false
}
return true
}
EasyNTS上云网关与EasyNTS平台的结合,实现了接入与管控、动态组网、远程运维、文件传输、远程指令调用等功能,从终端到云端,形成了一整套的上云网关解决方案,极大地解决了现场无固定IP、端口不开放、系统权限不开放等问题。如果大家还想了解更多内容或者视频相关解决方案,欢迎联系我们。