2012-01-06 36 views
9

Tôi đang cố gắng để có được địa chỉ mac từ máy của khách hàng mà duyệt trang web của tôi, tôi đã được sử dụng này:làm thế nào để có được địa chỉ mac của khách hàng duyệt trang web bằng asp.net MVC C#

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"]); 
     } 
    } 
} 

Nhưng nó không được công nhận Không gian tên quản lý, vì vậy tôi nên làm gì?

+3

Bạn có thực sự mong muốn địa chỉ MAC * của * khách hàng có sẵn thông qua nhà cung cấp WMI của * máy chủ * không? –

Trả lời

14

thật không may là không thể tin cậy nhận địa chỉ mac của máy khách do tường lửa, proxy và địa chỉ chung của ISP được cung cấp. Tuy nhiên, bạn có thể sử dụng địa chỉ ip bằng cách sử dụng:

var remoteIpAddress = Request.UserHostAddress; 

Tuy nhiên, điều này có thể thực sự không thể đại diện cho máy khách và nhiều địa chỉ IP khác. Đó là một vấn đề được nhiều người biết đến và thậm chí google đã tìm thấy khó khăn khi sử dụng javascript clientide (ý tưởng ở đây là bạn nhận địa chỉ IP cục bộ thực tế thông qua thư viện js và chuyển qua chức năng máy chủ của bạn).

[sửa] - có thể là giá trị tham Xem ví dụ sau để tìm cảm hứng/xác nhận về vấn đề này:

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

+4

không thể lấy địa chỉ mac của máy khách vì nó nằm trên lớp vật lý ethernet, vì vậy nếu không có liên kết vật lý trực tiếp giữa trang web của bạn và ứng dụng khách ... nó không phải do tường lửa –

+0

remi - point made better tôi đã có. cổ vũ –

+0

có thể nhận được MAC của iis nơi trang web được lưu trữ? – SAR

1

Nó thường không phải là có thể cho một người để có được địa chỉ MAC của một máy tính từ địa chỉ IP của nó một mình. Hai địa chỉ này bắt nguồn từ các nguồn khác nhau. Nói một cách đơn giản, cấu hình phần cứng của máy tính xác định địa chỉ MAC của nó trong khi cấu hình của mạng mà nó được kết nối để xác định địa chỉ IP của nó. Tuy nhiên, các máy tính kết nối với cùng một mạng cục bộ TCP/IP có thể xác định địa chỉ MAC của nhau. Công nghệ được gọi là ARP - Giao thức phân giải địa chỉ đi kèm với TCP/IP làm cho nó có thể. Sử dụng ARP, mỗi máy tính duy trì một danh sách cả hai địa chỉ IP và MAC cho mỗi thiết bị mà nó đã liên lạc gần đây.

Src

Các vấn đề liên quan