GB28181学习之路——eXosip获取IP和端口
当设备注册进来时,我们需要记录下设备的IP和端口,以便后续与其进行通信,其实好多地方都可以获取到,但是不一定是准确的,尤其是经过映射的地址更是不好难以捕捉。
今天写一下怎么样获取设备的IP和端口,对映射与非映射同样有效。先构造获answer,然后再answer的Via header中取,这时answer中含有映射地址的信息:
if (MSG_IS_REGISTER(je->request))
{int i = eXosip_message_build_answer (m_Ctx, je->tid, 200, &asw_register);if(i != 0)return;char addr[20];int port;memset(addr, '\0', strlen(addr));osip_via_t* via = nullptr;osip_message_get_via(asw_register, 0, &via);if(!via || !via->host){eXosip_lock (m_Ctx);eXosip_message_send_answer (m_Ctx, je->tid, 400, NULL);eXosip_unlock (m_Ctx);return;}osip_generic_param_t* br = nullptr;osip_via_param_get_byname (via, "received", &br);if (br != NULL && br->gvalue != NULL)strcpy(addr, br->gvalue);elsestrcpy(addr, via->host);osip_via_param_get_byname(via, "rport", &br);if(!br || !br->gvalue){eXosip_message_send_answer (m_Ctx, je->tid, 400, NULL);return;}port = atoi(br->gvalue);eXosip_lock (m_Ctx);eXosip_message_send_answer (m_Ctx, je->tid, 200, asw_register);eXosip_unlock (m_Ctx);
}
GB28181学习之路——eXosip获取IP和端口相关推荐
- 从sockaddr结构获取IP和端口
前言 从sockaddr结构中提取IP, 先将结构sockaddr转为sockaddr_in结构,然后用在利用相关API将其中的IP地址从网络格式转化我们熟悉点分十进制的字符串. 一.sockaddr ...
- php获取ip与端口,PHP获取IP与连接数,并获取IP所在地址
php-cli下执行 windows下的运维工具,改成linux也很方便 用PHP获取IP与连接数,并获取IP所在地址,主要针对80端口,其他端口也能看到 开启反解ip可判断是否是蜘蛛. //获取连接 ...
- Qt学习之路之获取本机IP
Qt提供的好几个类都可以获取到本机IP:IP4与IP6.这里,笔者使用QT获取本IP的方式如下: 头文件名: gethostIP_widget.h 头文件代码如下: #ifndef GETHOSTIP ...
- GB28181学习之路——PS流解析H264
磕磕绊绊的做了出来,也算为自己留个资料吧.先讲理论再上代码.挑些重点讲. 1. 首先就是获取到 rtp 包,rtp包的结构是:rtp包头+payload,payload就是我们要的ps包,rtp包头的 ...
- 微信小程序学习之路——API获取二维码
获取二维码 通过后台接口可以获取小程序任意页面的二维码,扫描该二维码可以直接进入小程序对应的页面. 可以使用开发工具 1.02.1803130 及以后版本通过二维码编译功能调试所获得的二维码 为满足不 ...
- GB28181学习之路——再探invite信令规范
最近对接压缩机和nvr设备,出现了很多的问题,原因是之前对接IPC所写的信令不规范,所以这次暴露出了很多问题. wireshark抓的包忘记保存了,懒着抓了,就干吧的写吧. 一.sip头proxy.t ...
- 海神之光Matlab王者学习之路---代码获取方式
- shodan API 获取IP开放端口
# -*- coding: utf-8 -*-""" @author:随时静听 @file: shodanForIp.py @time: 2019/01/28 @emai ...
- Java获取IP和端口(Linux)
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder .getRequestAttributes( ...
- 【Qt Quick】QNetworkDatagram获取Ip及端口
系统:win10 通信:UDP 简介 在写聊天软件练习时,作为服务器端需要优先知道客户端的Ip及地址,客户端发送数据过来时用QNetworkDatagram接收 代码 void UDPServer:: ...
最新文章
- CSS 单行溢出文本只显示部分内容
- 豆瓣9分以上,这7本Java经典名著,你还缺哪本?
- Kubernetes 使用 ceph-csi 消费 RBD 作为持久化存储
- 【转】VS 安全开发生命周期(SDL)检查
- 使用tensorflow serving部署keras模型(tensorflow 2.0.0)
- 机器学习(Machine Learning)- 吴恩达(Andrew Ng)-学习笔记
- MySQL last_insert_id()函数
- 彻底理解内存泄漏,memory leak
- JavaWeb——jsp原理
- 面向对象编程(七):接口(抽象类)
- 【CocoStudio游戏开发之一】制作多分辨率UI布局
- 数模比赛经验分享(美赛分享)
- 学习《自己动手写网络爬虫》之记录2
- 纠错码与魔术(一)——纠错码与汉明码简介
- 百度导航怎么不显示服务器,win7系统百度首页导航不见了怎么办
- VMWare VMNet 8 的配置使用
- RTX3080Ti和RTX2080Ti性能差距 RTX3080Ti和RTX2080Ti参数对比哪个好
- BUUCTF web(三)
- Java 统计接口消耗时间
- Python-实现语音识别并批处理标注(重命名)文件