RTSP取流设备密码含@
一、rtsp取流格式简介
RTSP的基本取流格式为:rtsp://username:password@ip_addr/...
如海康的ip地址为:rtsp://admin:admin123@10.1.69.100/Streaming/Channels/101
二、问题
如果在设备密码中有@号,则会导致整个路径在ip地址前有@符号
如:rtsp://admin:admin@123@10.1.69.100/Streaming/Channels/101
这时解析要注意了,不能用第一个@号来解析其用户名和密码,而是应该用最后一个
三:我的解决代码
1 // 处理密码中含有@号的情况 2 string host = FindField(strUrl, "://", "/"); 3 size_t pos = host.find_last_of('@'); 4 string userAndPwd = ""; 5 if (pos != string::npos) 6 { 7 userAndPwd = host.substr(0, pos); 8 }