Как я могу считать машину/имя компьютера клиента из браузера?

Если вы знаете, к каким переменным вы хотите получить доступ, вы можете быстро создать собственный скрипт контента для получения их значений.

В popup.js:

chrome.tabs.executeScript(null, {code: 'var name = "property"'}, function() {
    chrome.tabs.executeScript(null, {file: "retrieveValue.js"}, function(ret) {
        for (var i = 0; i < ret.length; i++) {
            console.log(ret[i]); //prints out each returned element in the array
        }
    });
});

В retrieveValue.js:

function returnValues() {
    return document.getElementById("element")[name];
    //return any variables you need to retrieve
}
returnValues();

Вы можете изменить код для возврата массивов или других объектов.

47
задан hims056 1 November 2012 в 10:04
поделиться

7 ответов

Вы можете сделать это с 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: Подробнее Информация

34
ответ дан 26 November 2019 в 19:51
поделиться

Мы сделали что-то подобное для собственный инструмент для отслеживания ошибок, он был удален перед запуском, но я думаю, что он сработает Я думаю, что студент-кооператив нашел его где-то в Интернете :)

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();
                }
-14
ответ дан 5 July 2019 в 04:47
поделиться

Эмм, есть ли причина, по которой вы не можете просто использовать HttpRequest? Это будет на стороне сервера, но вы могли бы передать его в javascript, если вам нужно?

Page.Request.UserHostName

HttpRequest.UserHostName

Единственная проблема с этим заключается в том, что он действительно будет работать только в среде интрасети, иначе это просто закончится сбор пользователей Маршрутизатор или прокси-адрес ...

-2
ответ дан 26 November 2019 в 19:51
поделиться

Браузер, операционная система, цвета экрана, экран Разрешение, версия Flash и поддержка Java должны быть обнаружены с помощью JavaScript (и, возможно, некоторых других). Однако имя компьютера невозможно.

РЕДАКТИРОВАТЬ: По крайней мере, невозможно во всех браузерах.

12
ответ дан 26 November 2019 в 19:51
поделиться

Ну, вы можете получить IP-адрес с помощью asp.net, а затем выполнить обратный поиск DNS на IP-адресе, чтобы получить имя хоста.

Из книги рецептов разработчика ASP.NET ... Выполнение обратного поиска в DNS .

9
ответ дан 26 November 2019 в 19:51
поделиться

Невозможно получить имя компьютера пользователя с Javascript. Вы можете получить все подробности о браузере и сети. Но не более того.

Как кто-то сегодня ответил на один из предыдущих вопросов.

Я уже оказал услугу, посетив ваш веб-сайт. Может быть, я вернусь или порекомендую другим друзьям .. Я также рассказал вам, где я, и какую ОС, браузер и разрешение экрана я использую. Почему вы хотите знать цвет мое нижнее белье? ; -)

Вы также не можете сделать это с помощью asp.net.

7
ответ дан 26 November 2019 в 19:51
поделиться

Нет, эти данные не разглашаются. Единственные доступные данные - это то, что предоставляется через HTTP-запрос, который может включать их ОС и другую подобную информацию. Но уж точно не имя машины.

2
ответ дан 26 November 2019 в 19:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: