This library implement Captive Portal Detection for Unity.
NetChecker netChecker = GetComponent<NetChecker>();
netChecker.OnCheckFinished += status => Debug.Log("Internet Check Result: " + status);
netChecker.CheckConnection();
NetChecker netChecker = GetComponent<NetChecker>();
netChecker.OnConnectionStatusChanged += status => Debug.Log("Internet Status Changed: " + status);
netChecker.StartConnectionCheck();