Здравствуйте, Уважаемые форумчане. Прошу Вашей помощи в решении моей проблемы. После обновления одного из наших локальных серверов я потерял к нему доступ из VBA. Яндекс с гуглом никак мне помочь не хотят)). Проблема в следующем (насколько я понял!):
При выполнении запроса GET, сервер проверят браузер пользователя и если он не списке, не проводит переадресацию в нужное место. Как его обмануть?
Мой запрос:
Ответ:
При выполнении запроса GET, сервер проверят браузер пользователя и если он не списке, не проводит переадресацию в нужное место. Как его обмануть?
Мой запрос:
Код |
---|
Dim XMLHTTP As New WinHttp.WinHttpRequest XMLHTTP.Open "GET", "http://MySERVER";, False XMLHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)" 'Доменная авторизация XMLHTTP.SetAutoLogonPolicy (AutoLogonPolicy_Always) XMLHTTP.SetClientCertificate ("CURRENT_USER\Personal") 'XMLHTTP.Option(WinHttpRequestOption_EnableRedirects) = False XMLHTTP.send Debug.Print XMLHTTP.responseText |
Код |
---|
<!DOCTYPE HTML> <HTML> <HEAD> <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"> <title>НАЗВАНИЕ</title> </HEAD> <body> <h1>НАЗВАНИЕ</h1> <strong>Вход</strong> <form style="display: none" action="servlet/Controller?action=START" method="POST" id="form"> <input type="hidden" id="bw" name="bw" value=""/> <input type="hidden" id="os" name="os" value=""/> <input type="hidden" id="ss" name="ss" value=""/> </form> <script> try { var bw = { name: 'unknown browser', version: '', compat: false }; try { (function () { var ua = navigator.userAgent, tok; if (ua == null) return; // firstly, check ie in compat. mode var M = ua.match(/\bMSIE\s+7\.0;.*\bTrident\/(\d+)\.0/) || []; if (/trident/i.test(M[0])) { bw.name = 'IE'; bw.compat = true; switch (M[1]) { case '4': bw.version = '8'; break; case '5': bw.version = '9'; break; case '6': bw.version = '10'; break; case '7': bw.version = '11'; break; } return; } // next, do universal check for all browsers M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; if (/trident/i.test(M[1])) { tok = /\brv[ :]+(\d+)/g.exec(ua) || []; bw.name = 'IE'; bw.version = tok[1] || ''; return; } if (M[1] === 'Chrome') { tok = ua.match(/\bOPR\/(\d+)/); if (tok != null) { bw.name = 'Opera'; bw.version = tok[1]; return; } } M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?']; if ((tok = ua.match(/version\/(\d+)/i)) != null) { M.splice(1, 1, tok[1]); } bw.name = M[0]; bw.version = M[1]; })(); } catch (e) { bw = null; } document.getElementById('bw').value = bw == null ? null : bw.name + ' ' + bw.version + (bw.compat ? ' (Compatibility View)' : ''); document.getElementById('os').value = navigator ? navigator.platform : 'unavailable'; document.getElementById('ss').value = screen ? screen.width + 'x' + screen.height : 'unavailable'; } catch (e) { // failed to detect environment } document.getElementsByTagName('FORM')[0].submit(); </script> </body> </html> |