视频上云/网络穿透/拉转推工具EasyNTS设备IP地址返回数据与实际IP匹配的筛选机制优化

本文主要是介绍视频上云/网络穿透/拉转推工具EasyNTS设备IP地址返回数据与实际IP匹配的筛选机制优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目前TSINGSEE青犀视频已经把EasyNTS的功能进行了扩展,扩大了EasyNTS的使用范围,关于新版EasyNTS的使用方法,我们在之前的博文中也有介绍,大家可以了解一下:EasyNTS上云网关配置手册介绍、EasyNTS上云网关推流直播实现流程

QQ图片20201109155932.png

我们研发在客户现场对EasyNTS平台的测试当中发现,EasyNTS获取设备列表界面下,其中ip地址的那一栏,出现一大串的html的源码,本来应该是获取设备所在环境的外网ip,但是却是获得一大串的文本信息。

16.png

经过排查我们了解到,这是由于客户环境导致的问题,该客户网络是有限制的,有些地址无法被访问到,导致在获取外网ip的时候没有数据可获取,最后返回一大串html的文本数据,是由于代码中没有对返回的数据进行校验。

因此我们不仅要确保地址访问无误,而且要在获取外网ip的时候,对返回的数据进行校验,如果和外网ip数据不匹配,就返回空的字符串。

131.png

参考代码如下:

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 = iplog.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、端口不开放、系统权限不开放等问题。如果大家还想了解更多内容或者视频相关解决方案,欢迎联系我们。

这篇关于视频上云/网络穿透/拉转推工具EasyNTS设备IP地址返回数据与实际IP匹配的筛选机制优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930732

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

详解Spring中REQUIRED事务的回滚机制详解

《详解Spring中REQUIRED事务的回滚机制详解》在Spring的事务管理中,REQUIRED是最常用也是默认的事务传播属性,本文就来详细的介绍一下Spring中REQUIRED事务的回滚机制,... 目录1. REQUIRED 的定义2. REQUIRED 下的回滚机制2.1 异常触发回滚2.2 回