diff --git a/server/WebApi.cpp b/server/WebApi.cpp index 96a49c04..f13fd4f4 100755 --- a/server/WebApi.cpp +++ b/server/WebApi.cpp @@ -1749,8 +1749,12 @@ void installWebApi() { CHECK(!offer.empty(), "http body(webrtc offer sdp) is empty"); std::string host = allArgs.getParser()["Host"]; std::string localIp = host.substr(0, host.find(':')); - std::regex ipv4Regex("^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"); - if (!std::regex_match(localIp, ipv4Regex)||localIp=="127.0.0.1") { + + auto isVaildIP = [](std::string ip)-> bool { + int a,b,c,d; + return sscanf(ip.c_str(),"%d.%d.%d.%d", &a, &b, &c, &d) == 4; + }; + if (!isVaildIP(localIp) || localIp=="127.0.0.1") { localIp = ""; }