- Как я могу прочитать имя компьютера / компьютера клиента из браузера?
- 9 ответов
- Get OS details from the webpage in JavaScript. 👷♂️
- Detecting desktop OS (Windows/Mac/Linux)
- Detecting mobile OS (Android/iOS)
- Как я могу прочитать имя клиентского компьютера/компьютера в браузере?
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
- Ответ 8
- Ответ 9
- Ответ 10
- Ответ 11
- Ответ 12
- Ответ 13
Как я могу прочитать имя компьютера / компьютера клиента из браузера?
Как я могу прочитать имя компьютера / компьютера клиента из браузера?
Возможно ли использовать JavaScript и / или ASP.NET?
9 ответов
Вы можете сделать это с IE «иногда», как я сделал это для внутреннего приложения в интрасети, которое является только IE. Попробуйте следующее:
function GetComputerName() < try < var network = new ActiveXObject('WScript.Network'); // Show a pop up if it works alert(network.computerName); >catch (e) < >>
Может также потребоваться или не потребоваться какая-то особая настройка параметров безопасности в IE, чтобы браузер мог получить доступ к объекту ActiveX.
Вот ссылка на дополнительную информацию о WScript: Дополнительная информация
Хм, есть ли причина, по которой вы не можете просто использовать HttpRequest? Это будет на стороне сервера, но вы можете передать его в JavaScript, если вам нужно?
Единственная проблема с этим заключается в том, что он действительно будет работать только в среде интрасети, в противном случае он просто получит адрес маршрутизатора или прокси-сервера пользователя .
Нет никакого способа сделать это, поскольку у JavaScript нет доступа к имени компьютера, файловой системе и другой локальной информации. Безопасность является главной целью.
Нет, эти данные не подвергаются. Единственные доступные данные — это то, что предоставляется через HTTP-запрос, который может включать их ОС и другую подобную информацию. Но, конечно, не имя машины.
Обновленная версия от Келси:
$(function GetInfo() < var network = new ActiveXObject('WScript.Network'); alert('User ID : ' + network.UserName + '\nComputer Name : ' + network.ComputerName + '\nDomain Name : ' + network.UserDomain); document.getElementById('').value = network.UserName; document.getElementById('').value = network.ComputerName; document.getElementById('').value = network.UserDomain; >);
Чтобы сохранить значение, добавьте эти элементы управления:
Где вы также можете позвонить сзади так:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MachineInfo", "GetInfo();", true);
Браузер, операционная система, цвета экрана, разрешение экрана, версия Flash и поддержка Java должны быть обнаружены с помощью JavaScript (и, возможно, еще нескольких). Однако имя компьютера невозможно.
РЕДАКТИРОВАТЬ: не возможно во всех браузерах по крайней мере.
Попробуйте получить имя клиентского компьютера в Mozilla Firefox, используя приведенный ниже код.
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;
Кроме того, тот же кусок кода может быть добавлен в качестве расширения, и его можно вызвать с вашей веб-страницы.
Пожалуйста, найдите образец кода ниже.
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
Невозможно получить имя компьютера пользователя с помощью Javascript. Вы можете получить все подробности о браузере и сети. Но не более того.
Как кто-то ответил сегодня на один из предыдущих вопросов.
Я уже сделал одолжение посетить ваш сайт, может быть, я вернусь или отошлю других друзей . Я также сказал вам, где я и какую ОС, браузер и разрешение экрана я использую. Почему вы хотите знать цвет моего нижнего белья? 😉
Вы не можете сделать это, используя asp.net.
Get OS details from the webpage in JavaScript. 👷♂️
The other day I was making a random demo app in Vue where I wanted to get the user’s machine information (not for snooping) but to display the basic information like the Operating System (OS) name with version etc. I had to confess I was so bad at this that I almost immediately revoked the idea to do such a thing. But now I think if not on Vue, I need to do this with vanilla JS. Taking this move further, I decided to dynamically add or delete DOM elements after detecting the OS. Though not this, we’ll definitely learn how to detect the OS on both web and mobile.
Detecting desktop OS (Windows/Mac/Linux)
First, let’s detect whether the client’s machine is running an OS that seriously needs to ramp up its application store (Windows) or the one which almost all programmers and hackers love the most (Linux) or the OS which can exclusively run XCode (Mac). This can simply be achieved by analyzing the value of navigator.appVersion of the window object. This one simple thing can do many things. Not only it will tell you about the current device OS (we’ll see more about this below), but also, it can be used to get the version information about the browser it’s currently running on. Let’s declare detectedOS as a variable in JS which holds the String information regarding the OS type. Next, we’ll make three if checks ( switch can work too).
// default value just in case if nothing is detected var detectedOS = "Unknown OS";
Inside the first check, let’s use the navigator.appVersion to get the index of the three major OS platforms: Win (Windows), Mac (MacOS), and Linux .
if (navigator.appVersion.indexOf("Mac") != -1) detectedOS = "MacOS";
Here, we check if the index value is not equal to 1 , then we set our variable value to «MacOS». Similarly, we can perform the same check for the other two OS:
var detectedOS = "Unknown OS"; if (navigator.appVersion.indexOf("Mac") != -1) detectedOS = "MacOS"; if (navigator.appVersion.indexOf("Win") != -1) detectedOS = "Windows"; if (navigator.appVersion.indexOf("Linux") != -1) detectedOS = "Linux";
Okay, all cool but how to display the user that a specific OS has been detected? There are multiple ways to do this. One good way would be: Adding an alert() which says «Device OS is: » when a button is clicked.
var detectOS = "Unknown OS"; if (navigator.appVersion.indexOf("Win") != -1) detectOS = "Windows"; if (navigator.appVersion.indexOf("Mac") != -1) detectOS = "MacOS"; if (navigator.appVersion.indexOf("Linux") != -1) detectOS = "Linux"; document.querySelector('button').addEventListener('click', detect); function detect() alert(`Device OS is: $detectOS>`) >
This is how it looks on Mac: On Windows: And on Linux:
Detecting mobile OS (Android/iOS)
With the current code, if you try to run it on mobile (via CodePen), you’ll see the following alert: While it’s true that Android is based on a modified version of Linux, it’s not entirely a Linux OS. So how do we make sure that «Android» is detected here instead of «Linux»? This is explained by a Stackoverflow user Vladyslav Turak in the following answer:
I learnt a lot about window.navigator object and its properties: platform , appVersion and userAgent . To my mind, it’s almost impossible to detect user’s OS with 100% sure, but in my case 85%-90% was enough for me. So, after examining tons of the stackoverflows’ answers and some articles, I…
function getOS() var userAgent = window.navigator.userAgent, platform = window.navigator.platform, macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'], windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'], iosPlatforms = ['iPhone', 'iPad', 'iPod'], os = null; if (macosPlatforms.indexOf(platform) !== -1) os = 'Mac OS'; > else if (iosPlatforms.indexOf(platform) !== -1) os = 'iOS'; > else if (windowsPlatforms.indexOf(platform) !== -1) os = 'Windows'; > else if (/Android/.test(userAgent)) os = 'Android'; > else if (!os && /Linux/.test(platform)) os = 'Linux'; > return os; > alert(getOS());
As you can see, we are using the same if statement checks as before, but for Android, we are testing /Android/.test with the navigator.userAgent . This is quite a nice workaround and upon running it on my Android phone, here is the result: I don’t have an iOS device to check for that device. You can do so and let me know below in the comments. Note that the guy who gave the answer to this has clearly stated that:
This code works properly. I tested it on all the OS: MacOS, iOS, Android, Windows and UNIX, but I can’t guarantee 100% sure.
Как я могу прочитать имя клиентского компьютера/компьютера в браузере?
Как я могу прочитать имя клиентского компьютера/компьютера в браузере?
Возможно ли использование JavaScript и/или ASP.NET?
ОТВЕТЫ
Ответ 1
Вы можете сделать это с помощью IE «иногда», поскольку я сделал это для внутреннего приложения в интрасети, которое является только IE. Попробуйте следующее:
function GetComputerName() < try < var network = new ActiveXObject('WScript.Network'); // Show a pop up if it works alert(network.computerName); >catch (e) < >>
В IE может потребоваться или не потребоваться определенная настройка параметров безопасности, чтобы браузер мог получить доступ к объекту ActiveX.
Вот ссылка на некоторую дополнительную информацию о WScript: Дополнительная информация
Ответ 2
Браузер, операционная система, цвета экрана, разрешение экрана, флэш-версия и поддержка Java должны быть обнаружены с помощью JavaScript (и, возможно, еще нескольких). Однако имя компьютера невозможно.
РЕДАКТИРОВАТЬ: Невозможно во всех браузерах.
Ответ 3
Ну, вы можете получить ip-адрес с помощью asp.net, а затем выполнить обратный поиск DNS на ip, чтобы получить имя хоста.
Из поваренной книги разработчика ASP.NET. Выполнение обратного DNS-поиска.
Ответ 4
Невозможно получить имя компьютера пользователя с помощью Javascript. Вы можете получить всю информацию о браузере и сети. Но не более того.
Как кто-то ответил в одном из предыдущих вопросов сегодня.
Я уже сделал одолжение для посещения вашего сайта, может быть, я вернусь или отправлю других друзей. Я также сказал вам, где я и что OS, браузер и разрешение экрана я использую. Почему вы хотите знать цвет мое нижнее белье?; -)
Вы не можете сделать это, используя asp.net.
Ответ 5
Попробуйте получить имя клиентского компьютера в Mozilla Firefox, используя приведенный ниже код.
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;
Кроме того, тот же фрагмент кода можно добавить в качестве расширения и вызвать с вашей веб-страницы.
Пожалуйста, найдите образец кода ниже.
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
Ответ 6
Эти данные не отображаются. Доступны только те данные, которые доступны через HTTP-запрос, который может включать их ОС и другую такую информацию. Но, конечно, не машинное имя.
Ответ 7
Нет никакого способа сделать это, поскольку у JavaScript нет доступа к имени компьютера, файловой системе и другой локальной информации. Безопасность является главной целью.
Ответ 8
У меня есть причина, по которой вы не можете просто использовать HttpRequest? Это было бы на стороне сервера, но вы могли бы передать его на javascript, если вам нужно?
Единственная проблема с этим заключается в том, что он действительно будет работать только в среде Intranet, иначе он просто подберет адрес пользователей Router или Proxy.
Ответ 9
Ответ 10
Обновленная версия от Kelsey:
$(function GetInfo() < var network = new ActiveXObject('WScript.Network'); alert('User ID : ' + network.UserName + '\nComputer Name : ' + network.ComputerName + '\nDomain Name : ' + network.UserDomain); document.getElementById('').value = network.UserName; document.getElementById('').value = network.ComputerName; document.getElementById('').value = network.UserDomain; >);
Чтобы сохранить значение, добавьте этот элемент управления:
Где вы также можете вызвать его из-за этого:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MachineInfo", "GetInfo();", true);
Ответ 11
Почему мы ограничиваем область действия и почему вы не пытаетесь выполнить приведенный ниже вопрос, который может возникнуть из-за непоследовательной конфигурации DNS.
InetAddress inet=InetAddress.getByName(request.getRemoteAddr().trim()); System.out.println(" host name is : "+inet.getHostName());
Ответ 12
Page.Request.UserHostName также «отлично, если вы хотите получить информацию о сервере»
Но почему? Название подразумевает, что оно возвращает то, что мы хотим. И эквивалент ServerVariables рекламируется на сайтах Microsoft, как то, что мы хотим, то есть предоставляем имя хоста удаленного. Тем не менее оба дают мне IP-адрес (а не имя) хоста, на котором запущен IIS.
Ответ 13
Мы сделали что-то подобное для встроенного инструмента для работы с битрейтами, его доставили до того, как мы поехали вживую, но я думаю, что это сработает Я думаю, что студент-курятник нашел его в Интернете где-то:)
using System; using System.Management; using System.Windows.Forms; namespace ComputerInfo < ////// Summary description for Class1. /// 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()