es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna forma en HTML/JavaScript de obtener un UserAgent “Switched” desde el encabezado en lugar del objeto navigator?

Solo me preguntaba porque este código está en HTML puro con un poco de JavaScript que me proporciona mis direcciones IP actuales (usando una llamada AJAX de jQuery a un sitio de IPv4/v6) y también me proporciona mi agente de usuario.

Sin embargo, como todo es JS, obtengo el UA del objeto Navigator en lugar de los encabezados, y al usar una extensión de cambio de agente, cambia el UA cuando llamo a una página que muestra los encabezados en el servidor, digamos con una búsqueda en Google de “cuál es mi agente de usuario”, pero mi página solo obtiene el ua del objeto navigator y siempre es el verdadero UserAgent, nunca el cambiado, por ejemplo:

let ua = navigator.userAgent;
document.querySelector('#UA').innerHTML = "UserAgent: <b>" + ua + "</b>";

¿Existe alguna manera de obtener el encabezado / agente cambiado además o en lugar de la forma en que lo estoy obteniendo actualmente?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de obtener el encabezado/agente cambiado además del método que estás utilizando actualmente. Puedes utilizar los encabezados HTTP para obtener la cadena del agente de usuario. Específicamente, el encabezado User-Agent contiene la cadena del agente de usuario para la solicitud actual. Para obtener este encabezado en JavaScript, puedes utilizar el objeto XMLHttpRequest para realizar una solicitud AJAX a un script del lado del servidor que devuelva los encabezados. Por ejemplo:

    var xhr = new XMLHttpRequest();
    
    xhr.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        var headers = xhr.getAllResponseHeaders();
        var ua = headers.match(/User-Agent\s*:\s*([^\n]+)/i)[1];
        document.querySelector('#UA').innerHTML = "UserAgent: <b>" + ua + "</b>";
      }
    };
    
    xhr.open('GET', 'test.php');
    xhr.send();
    

    En este ejemplo, estamos haciendo una solicitud a test.php, que simplemente debe devolver los encabezados. Una vez que recibimos los encabezados en la respuesta AJAX, extraemos el encabezado User-Agent utilizando una expresión regular y lo mostramos en la página utilizando el mismo código que antes.

Comments are closed.