• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Có lấy được địa chỉ MAC của máy người dùng

Trao đổi về lập trình Web Forms, Javascript với ASP.NET

Điều hành viên: vietluyen, vuathongtin

Hình đại diện của người dùng
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Bài viết: 227
Ngày tham gia: T.Năm 11/10/2012 9:47 am
Đến từ: Thái Bình
Has thanked: 78 time
Been thanked: 24 time
Liên hệ:

Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi QUANITGROBEST » T.Tư 31/07/2013 9:00 am

mình đang làm 1 trang web, và muốn lấy địa chỉ MAC của máy người dùng lưu vào CSDL để khi 1 nguoi dùng đăng nhâp thì hệ thống sẽ kiểm tra nếu tồn tại MAC trong CSDL mới cho đăng nhập,còn ko tồn tại thì đẩy qua trang thông báo bạn ko có quyền truy cập trang này, nhưng hiện tại chỉ lấy được địa chỉ MAC của máy server (máy chứa source), tham khảo trên mạng thì có người nói ko thể lấy được MAC của máy người dùng, liệu có cách nào lấy được MAC máy người dùng ko, hay là ko thể lấy được, hoặc có giải pháp nào khác thay thế.
các bạn đóng góp cho mình ý kiến nha
thanks đã đọc tin


http://grobest.com.vn/[url]spasenhong.vn[/url]

phuoctrung
Thành viên chính thức
Thành viên chính thức
Bài viết: 14
Ngày tham gia: T.Hai 14/06/2010 9:15 am
Has thanked: 2 time

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi phuoctrung » CN 04/08/2013 10:08 pm

a lấy địa chỉ mac ra file txt rồi phần mềm sẽ lấy file txt đó đọc địa chỉ mac rồi gửi lên server. ý kiến của e là thế. có j sai sót mong mọi người bỏ qua :D

Hình đại diện của người dùng
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Bài viết: 227
Ngày tham gia: T.Năm 11/10/2012 9:47 am
Đến từ: Thái Bình
Has thanked: 78 time
Been thanked: 24 time
Liên hệ:

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi QUANITGROBEST » T.Hai 05/08/2013 3:20 pm

mình chạy trên nền web, chứ ko phải winform, hiện tại chỉ lấy được MAC của máy server (máy chứa source), đang muốn lấy MAC của các máy truy cập tới web đó, từ đó đối chiều với MAC trong csdl, máy nào có tồn tại MAC trong CSDL mới cho truy cập, nhưng hiện tại đang vướng chỗ lấy MAC máy truy cập vào(máy client)
http://grobest.com.vn/[url]spasenhong.vn[/url]

Hình đại diện của người dùng
vietteiv
Quản trị
Quản trị
Bài viết: 1318
Ngày tham gia: T.Bảy 10/02/2007 12:17 am
Đến từ: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 time
Been thanked: 69 time
Liên hệ:

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi vietteiv » T.Ba 06/08/2013 2:23 am

bạn có thể sử dụng javascript để lấy địa chỉ mac tại máy người dùng
kết quả tìm kiếm google: https://www.google.com.vn/search?q=get+mac+address+javascript&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a&gws_rd=cr
  1. <html>
  2.     <head>
  3.         <script id="clientEventHandlersJS" type="text/javascript">
  4.         <!--
  5.         function btnGo_onClick() {
  6.             // Connect to WMI
  7.             var locator = new ActiveXObject("WbemScripting.SWbemLocator");
  8.             var service = locator.ConnectServer(".");
  9.            
  10.             // Get the info
  11.             var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
  12.             var e = new Enumerator (properties);
  13.            
  14.             // Output info
  15.             document.write("<table border=1>");
  16.             document.write("<thead>");
  17.             document.write("<td>Caption</td>");
  18.             document.write("<td>MAC Address</td>");
  19.             document.write("</thead>");
  20.             for (;!e.atEnd();e.moveNext ())
  21.             {
  22.                 var p = e.item ();
  23.                 document.write("<tr>");
  24.                 document.write("<td>" + p.Caption + "</td>");
  25.                 document.write("<td>" + p.MACAddress + "</td>");
  26.                 document.write("</tr>");
  27.             }
  28.             document.write("</table>");
  29.         }
  30.         //-->
  31.         </script>
  32.     </head>
  33.     <body>
  34.         <h1>MAC Address</h1>
  35.         <input id="btnGo" name="btnGo" value="Go" onclick="javascript:btnGo_onClick()" type="button">
  36.     </body>
  37. </html>


hoặc thử debug đoạn code php này xem được ko
  1. < ?php
  2. function returnMacAddress()
  3. {
  4. // This code is under the GNU Public Licence
  5. // Written by michael_stankiewicz {don't spam} at yahoo {no spam} dot com
  6. // Tested only on linux, please report bugs
  7.  
  8. // WARNING: the commands 'which' and 'arp' should be executable
  9. // by the apache user; on most linux boxes the default configuration
  10. // should work fine
  11.  
  12. // Get the arp executable path
  13. $location = `which arp`;
  14. $location = rtrim($location);
  15.  
  16. // Execute the arp command and store the output in $arpTable
  17. $arpTable = `$location -n`;
  18.  
  19. // Split the output so every line is an entry of the $arpSplitted
  20. //array $arpSplitted = split("\n",$arpTable);
  21. $arpSplitted = split("\n",$arpTable);
  22.  
  23. // Get the remote ip address (the ip address of the client, the browser)
  24. $remoteIp = $GLOBALS['REMOTE_ADDR'];
  25. $remoteIp = str_replace(".", "\.", $remoteIp);
  26.  
  27. // Cicle the array to find the match with the remote ip address
  28. foreach ($arpSplitted as $value) {
  29. // Split every arp line, this is done in case the format of the arp
  30. // command output is a bit different than expected
  31. $valueSplitted = split(" ",$value);
  32. foreach ($valueSplitted as $spLine) {
  33. if ( preg_match("/$remoteIp/",$spLine) ) {
  34. $ipFound = true;
  35. }
  36.  
  37. // The ip address has been found, now rescan all the string
  38. // to get the mac address
  39. if ($ipFound) {
  40. // Rescan all the string, in case the mac address, in the string
  41. // returned by arp, comes before the ip address (you know,Murphy's laws)
  42. reset($valueSplitted);
  43. foreach ($valueSplitted as $spLine) {
  44. if (preg_match("/[0-9a-f][0-9a-f][:-][0-9a-f][0-9a-f][:-][0-9a-f][0-9a-f][:-][0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-][0-9a-f][0-9a-f]/i",$spLine)) {
  45. return $spLine;
  46. }
  47. }
  48. }
  49. $ipFound = false;
  50. }
  51. }
  52. return false;
  53. }
  54. ?>


hì cũng mới học xong khóa php cơ bản nên tìm hiểu thấy cũng thú vị thật :D

Hình đại diện của người dùng
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Bài viết: 227
Ngày tham gia: T.Năm 11/10/2012 9:47 am
Đến từ: Thái Bình
Has thanked: 78 time
Been thanked: 24 time
Liên hệ:

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi QUANITGROBEST » T.Ba 06/08/2013 2:32 pm

thanks bạn nhé, mình đang coi đoạn code js của bạn, nhưng cái này nó chỉ chạy trên IE thôi(phải enable ActiveX), còn chrome, firefox và safari thì chưa chạy được(mình chạy thấy ko dc), và còn máy chạy HĐH Leopard.
vấn đề có vẻ hơi phực tạp với mình rồi.
web mình xây dựng nó như thế này, nói ra để các bạn xem có giải pháp nào thay thế ko:
xây dựng 1 web nội bộ cho cty, để hiển thị các thông tin sản lượng thị phần, nhưng thông tin này ko được lọt ra ngoài nên cần bảo mật và phải chạy trên net để các sếp ở nhà hay đi nc ngoài vẫn coi được, ngoài việc bào mật bằng username và pass thì mình muốn thêm 1 lớp nữa là thông qua địa chỉ MAC(mặc dù cũng chưa hoàn toàn bảo mật vì có PM thay đổi MAC) nhưng ý xếp hài lòng cách đó, tức là sẽ lấy thông tin địa chỉ MAC của các máy nào muốn cho truy cập web lưu vào 1 table trong CSDL (mình dùng SQL server) sau đó khi máy nào truy cập vào web thì kiểm tra địa chỉ MAC xem có tồn tại trong CSDL nếu có cho qua vào bước đăng nhập, còn ko thì out luôn.
mình làm trên nền .net
Sửa lần cuối bởi QUANITGROBEST vào ngày T.Tư 07/08/2013 9:59 am với 1 lần sửa.
http://grobest.com.vn/[url]spasenhong.vn[/url]

DoremonA
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 441
Ngày tham gia: T.Sáu 29/07/2011 1:00 pm
Has thanked: 11 time
Been thanked: 145 time

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi DoremonA » T.Ba 06/08/2013 4:15 pm

Bạn vào đây down Source Code về tham khảo thử OK không?
http://www.codeproject.com/Articles/9390/HostName-IP-and-MAC-Address
Hoặc ở đây http://forums.asp.net/t/1770692.aspx/1

Hình đại diện của người dùng
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Bài viết: 227
Ngày tham gia: T.Năm 11/10/2012 9:47 am
Đến từ: Thái Bình
Has thanked: 78 time
Been thanked: 24 time
Liên hệ:

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi QUANITGROBEST » T.Tư 07/08/2013 10:07 am

Thanks DoremonA, nhưng chưa được, source trên code project là nó làm trên winform, trước đó mình cũng có làm theo cách trên trang asp.forum nhưng nó chỉ lấy được MAC chứa source tức là MAC trên máy chủ.
thanks các bạn đã góp ý giúp đỡ.
http://grobest.com.vn/[url]spasenhong.vn[/url]

Hình đại diện của người dùng
tuyen_dt18
Guru
Guru
Bài viết: 256
Ngày tham gia: T.Bảy 19/04/2008 8:46 pm
Đến từ: Hưng Yên
Been thanked: 43 time
Liên hệ:

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi tuyen_dt18 » T.Bảy 21/09/2013 9:16 pm

Một cách đơn giản là chỉ trình duyệt mới cho phép truy cập vào các tài nguyên của máy tính người dùng.
Có thể trình duyệt cung cấp trực tiếp các tài nguyên của máy tính hoặc thông qua một ActiveX, Plugin, Add-on, Extension, ...
Mà hiện nay chưa một trình duyệt nào hỗ trợ cung cấp địa chỉ MAC của máy tính người dùng cả.
Vì vậy chỉ có cách duy nhất là dựa vào một nền tảng ActiveX, Plugin, Add-on, hay Extension như : Flash, Silverlight, .NET, ... mà thôi.
Vì vậy nếu bạn cũng không dùng đến các thứ đó thì muốn lấy địa chỉ MAC của máy tính người là điều Pó tay !
Hỏi ý kiến tác giả trước khi sử dụng hoặc trích dẫn rõ nguồn bài viết khi sử dụng.

Hình đại diện của người dùng
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Bài viết: 227
Ngày tham gia: T.Năm 11/10/2012 9:47 am
Đến từ: Thái Bình
Has thanked: 78 time
Been thanked: 24 time
Liên hệ:

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi QUANITGROBEST » T.Hai 23/09/2013 1:40 pm

Cám ơn tuyen_dt18 đã góp ý, mình đã tìm hiểu việc lấy Mac này rất nhiều, và kết quả ko khả quan. Mục đích muốn lấy MAC của máy client là để phân quyền cho máy nào được phép truy xuất vào 1 trang web dựa vào MAC khi nó public lên mạng, cuối cùng mình cũng tìm được 1 giải pháp khác thay thế ko phải lấy MAC mà vấn áp dụng được cho độc lập từng máy, mình nói lên đây cho các bạn góp ý nhé, nó cũng hơi cùi tý nhưng mà quan trọng hơn là xếp hài lòng cách này.
đó mà dùng PM tạo key ngẫu nhiên 50 ký tự(mã hóa MD5 tên Username của nhân viên) và gửi key này cho máy nào muốn truy cập, khi máy đó truy cập vào web thì ngoài việc đăng nhập Usernam, pass phải làm thêm 1 bước là upload file key.txt (chứa nội dụng ID là chuối MD5 mình nói ở trên) lên 1 thư mục máy chủ, từ đây hệ thống đọc nội dung key ứng với username so sánh với key lưu trong CSDL nếu ok tức là đăng nhập thành công thì vào trang chính, ngược lại thông báo ko có quyền truy cập site này, mình dùng control là FileUpload để upload.
http://grobest.com.vn/[url]spasenhong.vn[/url]

Hình đại diện của người dùng
vietteiv
Quản trị
Quản trị
Bài viết: 1318
Ngày tham gia: T.Bảy 10/02/2007 12:17 am
Đến từ: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 time
Been thanked: 69 time
Liên hệ:

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi vietteiv » T.Hai 23/09/2013 2:54 pm

vậy nếu người dùng đó share file key.txt cho tất cả mọi người sử dụng thì làm sao?

Hình đại diện của người dùng
tuyen_dt18
Guru
Guru
Bài viết: 256
Ngày tham gia: T.Bảy 19/04/2008 8:46 pm
Đến từ: Hưng Yên
Been thanked: 43 time
Liên hệ:

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi tuyen_dt18 » T.Hai 23/09/2013 8:33 pm

Việc dung địa chỉ MAC và dung địa chỉ IP có khác gì nhau đâu !
Sao bạn không thử dùng địa chỉ IP xem !
Hỏi ý kiến tác giả trước khi sử dụng hoặc trích dẫn rõ nguồn bài viết khi sử dụng.

Hình đại diện của người dùng
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Bài viết: 227
Ngày tham gia: T.Năm 11/10/2012 9:47 am
Đến từ: Thái Bình
Has thanked: 78 time
Been thanked: 24 time
Liên hệ:

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi QUANITGROBEST » T.Ba 24/09/2013 9:38 am

vietteiv đã viết:vậy nếu người dùng đó share file key.txt cho tất cả mọi người sử dụng thì làm sao?

nếu share file key.txt thì phải share cả Username và pass, phải có 3 thông tin đó thì mới đăng nhập vào được, vì nội dung trong key mã hóa MD5 Username. hoặc có thể khắc phục trường hợp này bằng cách gửi cho nhân viên 1 tool để tạo Key.txt, key tạo ra tự động lưu vào 1 thư mục nào đó mà họ ko bit vd thư mục windows trong ổ C, khi lập trình gán cứng đường dẫn tới thư mục đó :D
Sửa lần cuối bởi QUANITGROBEST vào ngày T.Ba 24/09/2013 9:53 am với 1 lần sửa.
http://grobest.com.vn/[url]spasenhong.vn[/url]

Hình đại diện của người dùng
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Bài viết: 227
Ngày tham gia: T.Năm 11/10/2012 9:47 am
Đến từ: Thái Bình
Has thanked: 78 time
Been thanked: 24 time
Liên hệ:

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi QUANITGROBEST » T.Ba 24/09/2013 9:45 am

tuyen_dt18 đã viết:Việc dung địa chỉ MAC và dung địa chỉ IP có khác gì nhau đâu !
Sao bạn không thử dùng địa chỉ IP xem !

khác chứ bạn, tại vì muốn chỉ định cho người dùng nào truy cập và máy nào truy cập,nếu chỉ có username và pass thì có thể dùng phần mềm dò là ra, nên muốn thêm 1 lớp nữa, MAC thì độc lập cho từng máy(mặc dù có PM thay đổi MAC), nếu dùng IP thì có 2 loại 1 là IP local dạng như 192.168.x.x loại này ko ổn, thứ 2 là IP public, IP này dùng cho cả 1 vùng, như vậy những máy nào trong 1 vùng đó đều có thể truy cập được, hơn nữa nhân viên truy cập chủ yếu là sale ngoài thị trường để họ cập nhập sản lượng hàng ngày (thay cho việc gửi file excel như hiện tại) họ thay đổi khu vực liên tục như vậy phải cập nhập IP public đó liên tục cũng ko ổn (nhân viên sale hơn 300 người, ngồi mà nghe họ alo cũng mệt hì).
http://grobest.com.vn/[url]spasenhong.vn[/url]

hyenvnhu
Bài viết: 3
Ngày tham gia: T.Bảy 10/10/2015 5:40 pm

Re: Có lấy được địa chỉ MAC của máy người dùng

Gửi bàigửi bởi hyenvnhu » T.Năm 15/10/2015 9:13 pm

Mình cũng đang cần công việc giống như bạn, nhưng mình chỉ cần lấy thông tin của userid đăng nhập vào windows thôi, cũng liên quan đến quyền truy cập, nhưng công việc của mình thì trọng mạng nội bộ, muốn lấy user domain login vào máy tính để phân quyền, chứ phân quyền theo IP thì cũng không tiện lắm. Có bác nào biết mách giúp em với. Thanks.


Quay về “Lập trình Web với ASP.NET”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách