userhostname obtener nombre equipo cliente javascript asp.net computer-name

nombre - obtener ip local javascript



¿Cómo puedo leer el nombre de máquina/computadora del cliente desde el navegador? (13)

Bueno, podrías obtener la dirección IP usando asp.net, luego hacer una búsqueda DNS inversa en la ip para obtener el nombre de host.

Del libro de cocina del desarrollador de ASP.NET ... Realización de una búsqueda DNS inversa .

¿Cómo puedo leer el nombre de máquina / computadora del cliente desde el navegador?
¿Es posible usar JavaScript y / o ASP.NET?


El navegador, el sistema operativo, los colores de pantalla, la resolución de pantalla, la versión de Flash y el soporte de Java deberían ser detectables desde JavaScript (y quizás algunos más). Sin embargo, el nombre de la computadora no es posible.

EDITAR: No es posible en todos los navegadores al menos.


Erm ¿hay alguna razón por la que no puedas usar simplemente HttpRequest? Esto sería del lado del servidor, pero ¿podría pasarlo a javascript si fuera necesario?

Page.Request.UserHostName

HttpRequest.UserHostName

El único problema con esto es que solo funcionaría realmente en un entorno de Intranet, de lo contrario, terminaría recogiendo la dirección de enrutador o proxy del usuario ...


Hicimos algo como esto para una herramienta interna de seguimiento de errores, se eliminó antes de que comenzáramos, pero creo que funcionaría, creo que un estudiante de la cooperativa lo encontró en Internet en algún lugar :)

using System; using System.Management; using System.Windows.Forms; namespace ComputerInfo { /// <summary> /// Summary description for Class1. /// </summary> public class CPUInfo { #region Properties private String osVersion; public String OSVersion { get { return this.osVersion; } } private String machineName; public String MachineName { get { return this.OSVersion; } } private int width; public int ScreenWidth { get { return this.width; } } private int height; public int ScreenHeight { get { return this.height; } } private String userName; public String UserName { get { return this.userName; } } private String clockSpeed; public String ClockSpeed { get { return this.clockSpeed; } } private String procName; public String ProcessorName { get { return this.procName; } } private String manufacturer; public String ProcessorManufacturer { get { return this.manufacturer; } } private String version; public String ProcessorVersion { get { return this.version; } } private double ram; public double RAM { get { return this.ram; } } private bool usehtml; public bool UseHTMLFormatting { get { return this.usehtml; } set { usehtml = value; } } #endregion public CPUInfo() : this(false) { } public CPUInfo(bool use_html_formatting) { usehtml = use_html_formatting; osVersion = System.Environment.OSVersion.ToString() ; machineName = System.Environment.MachineName.ToString(); width = Screen.PrimaryScreen.Bounds.Width; height = Screen.PrimaryScreen.Bounds.Height; userName = ""; clockSpeed = ""; procName = ""; manufacturer = ""; version = ""; ram = 0.0d; getMachineInfo(); } private void getMachineInfo() { try { using(ManagementObjectSearcher win32Proc = new ManagementObjectSearcher("select * from Win32_Processor"), win32CompSys = new ManagementObjectSearcher("select * from Win32_ComputerSystem"), win32Memory = new ManagementObjectSearcher("select * from Win32_PhysicalMemory")) { foreach (ManagementObject obj in win32Proc.Get()) { clockSpeed = obj["CurrentClockSpeed"].ToString(); procName = obj["Name"].ToString(); manufacturer = obj["Manufacturer"].ToString(); version = obj["Version"].ToString(); }


Intente obtener el nombre de la computadora del cliente en Mozilla Firefox usando el código que se proporciona a continuación.

netscape.security.PrivilegeManager.enablePrivilege( ''UniversalXPConnect'' ); var dnsComp = Components.classes["@mozilla.org/network/dns-service;1"]; var dnsSvc = dnsComp.getService(Components.interfaces.nsIDNSService); var compName = dnsSvc.myHostName;

Además, el mismo fragmento de código se puede poner como una extensión y se puede llamar desde su página web.

Encuentre el código de muestra a continuación.

Código de extensión:

var myExtension = { myListener: function(evt) { //netscape.security.PrivilegeManager.enablePrivilege( ''UniversalXPConnect'' ); var dnsComp = Components.classes["@mozilla.org/network/dns-service;1"]; var dnsSvc = dnsComp.getService(Components.interfaces.nsIDNSService); var compName = dnsSvc.myHostName; content.document.getElementById("compname").value = compName ; } } document.addEventListener("MyExtensionEvent", function(e) { myExtension.myListener(e); }, false, true); //this event will raised from the webpage

Código de página web:

<html> <body onload = "load()"> <script> function showcomp() { alert("your computer name is " + document.getElementById("compname").value); } function load() { //var element = document.createElement("MyExtensionDataElement"); //element.setAttribute("attribute1", "foobar"); //element.setAttribute("attribute2", "hello world"); //document.documentElement.appendChild(element); var evt = document.createEvent("Events"); evt.initEvent("MyExtensionEvent", true, false); //element.dispatchEvent(evt); document.getElementById("compname").dispatchEvent(evt); //this raises the MyExtensionEvent event , which assigns the client computer name to the hidden variable. } </script> <form name="login_form" id="login_form"> <input type = "text" name = "txtname" id = "txtnamee" tabindex = "1"/> <input type="hidden" name="compname" value="" id = "compname" /> <input type = "button" onclick = "showcomp()" tabindex = "2"/> </form> </body> </html>


No es posible obtener el nombre de la computadora de los usuarios con Javascript. Puede obtener todos los detalles sobre el navegador y la red. Pero no más que eso.

Al igual que alguien respondió en una de las preguntas anteriores hoy.

Ya hice un favor al visitar su sitio web. Puede ser que regrese o consulte a otros amigos. También le dije dónde estoy y qué sistema operativo, navegador y resolución de pantalla uso. ¿Por qué quiere saber el color de mi ropa interior? ;-)

No puedes hacerlo usando asp.net también.


No hay forma de hacerlo, ya que JavaScript no tiene acceso al nombre de la computadora, sistema de archivos y otra información local. Esto es parte de la especificación de JavaScript. La seguridad es el objetivo principal.


No, estos datos no están expuestos. La única información disponible es la que está expuesta a través de la solicitud HTTP, que puede incluir su sistema operativo y otra información similar. Pero ciertamente no es el nombre de la máquina.


Por qué estamos limitando el alcance y por qué no prueba el siguiente que puede plantear problemas debido a la configuración incoherente de DNS.

InetAddress inet=InetAddress.getByName(request.getRemoteAddr().trim()); System.out.println(" host name is : "+inet.getHostName());


Puedes hacerlo con IE ''algunas veces'', como lo he hecho para una aplicación interna en una intranet que es solo IE. Pruebe lo siguiente:

function GetComputerName() { try { var network = new ActiveXObject(''WScript.Network''); // Show a pop up if it works alert(network.computerName); } catch (e) { } }

Puede o no requerir alguna configuración específica de configuración de seguridad en IE y permitir que el navegador acceda al objeto ActiveX.

Aquí hay un enlace a más información sobre WScript: Más información


Una versión actualizada de Kelsey:

$(function GetInfo() { var network = new ActiveXObject(''WScript.Network''); alert(''User ID : '' + network.UserName + ''/nComputer Name : '' + network.ComputerName + ''/nDomain Name : '' + network.UserDomain); document.getElementById(''<%= currUserID.ClientID %>'').value = network.UserName; document.getElementById(''<%= currMachineName.ClientID %>'').value = network.ComputerName; document.getElementById(''<%= currMachineDOmain.ClientID %>'').value = network.UserDomain; });

Para almacenar el valor, agregue estos controles:

<asp:HiddenField ID="currUserID" runat="server" /> <asp:HiddenField ID="currMachineName" runat="server" /> <asp:HiddenField ID="currMachineDOmain" runat="server" />

Donde también puedes llamar desde atrás de esta manera:

Page.ClientScript.RegisterStartupScript(this.GetType(), "MachineInfo", "GetInfo();", true);


Page.Request.UserHostName también es "excelente si quieres información sobre el servidor"

¿Pero por qué? El nombre implica que devuelve lo que queremos. Y el equivalente de ServerVariables se anuncia en los sitios de Microsoft haciendo lo que queremos, es decir, dando el nombre de host del control remoto. Sin embargo, ambos me dan la dirección IP (no el nombre) del host que ejecuta IIS.


<html> <body onload = "load()"> <script> function load() { try { var ax = new ActiveXObject("WScript.Network"); alert(''User: '' + ax.UserName ); alert(''Computer: '' + ax.ComputerName); } catch (e) { document.write(''Permission to access computer name is denied'' + ''<br />''); } </script> </form> </body> </html>