Как получить MAC-адрес клиента, который просматривает веб-сайт по asp.net mvc c # - PullRequest
11 голосов
/ 06 января 2012

Я пытаюсь получить MAC-адрес от компьютера клиента, который просматривает мой веб-сайт, я использовал это:

using System.Management;
class Sample_ManagementClass
{
    public static int Main(string[] args)
    {
        ManagementClass objMC = new
        ManagementClass("Win32_NetworkAdapterConfiguration");
        ManagementObjectCollection objMOC = objMC.GetInstances();

        foreach (ManagementObject objMO in objMOC)
        {
            if (!(bool)objMO["ipEnabled"])
                continue;

            Console.WriteLine((string)objMO["MACAddress"]);
        }
    }
 }

Но это не распознанное пространство имен управления, так что мне делать?

Ответы [ 2 ]

15 голосов
/ 06 января 2012

К сожалению, невозможно получить MAC-адрес клиентского компьютера из-за предоставления брандмауэров, прокси-серверов и общих адресов ISP.Тем не менее, вы можете попытаться получить IP-адрес, используя:

var remoteIpAddress = Request.UserHostAddress;

Однако, это может или не может фактически представлять клиентский компьютер и, скорее, шлюз ISP или какой-либо другой IP-адрес.Это хорошо известная проблема, которую даже гуглу было трудно взломать с помощью клиентского javascript (идея заключается в том, что вы получаете фактический локальный IP-адрес через библиотеку js и передаёте его функции вашего сервера).

[править] - может быть стоит взглянуть на следующее для вдохновения / подтверждения проблемы:

http://www.dotnetfunda.com/forums/thread2088-how-to-get-mac-address-of-client-machine.aspx

3 голосов
/ 06 января 2012

Обычно человек не может получить MAC-адрес компьютера только по его IP-адресу.Эти два адреса происходят из разных источников.Проще говоря, собственная аппаратная конфигурация компьютера определяет его MAC-адрес, а конфигурация сети, к которой он подключен, определяет его IP-адрес.Однако компьютеры, подключенные к одной локальной сети TCP / IP, могут определять MAC-адреса друг друга.Технология, называемая ARP - Address Resolution Protocol, включенная в TCP / IP, делает это возможным.Используя ARP, каждый компьютер ведет список как IP, так и MAC-адресов для каждого устройства, с которым он недавно установил связь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...