• 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

Moderators: vietluyen, vuathongtin

User avatar
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Posts: 227
Joined: Thu 11/10/2012 9:47 am
Location: Thái Bình
Has thanked: 78 times
Been thanked: 24 times
Contact:

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

Postby QUANITGROBEST » Wed 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
Posts: 14
Joined: Mon 14/06/2010 9:15 am
Has thanked: 2 times

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

Postby phuoctrung » Sun 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

User avatar
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Posts: 227
Joined: Thu 11/10/2012 9:47 am
Location: Thái Bình
Has thanked: 78 times
Been thanked: 24 times
Contact:

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

Postby QUANITGROBEST » Mon 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]

User avatar
vietteiv
Quản trị
Quản trị
Posts: 1325
Joined: Sat 10/02/2007 12:17 am
Location: 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 times
Been thanked: 71 times
Contact:

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

Postby vietteiv » Tue 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
[asp]< ?php
function returnMacAddress()
{
// This code is under the GNU Public Licence
// Written by michael_stankiewicz {don't spam} at yahoo {no spam} dot com
// Tested only on linux, please report bugs

// WARNING: the commands 'which' and 'arp' should be executable
// by the apache user; on most linux boxes the default configuration
// should work fine

// Get the arp executable path
$location = `which arp`;
$location = rtrim($location);

// Execute the arp command and store the output in $arpTable
$arpTable = `$location -n`;

// Split the output so every line is an entry of the $arpSplitted
//array $arpSplitted = split("\n",$arpTable);
$arpSplitted = split("\n",$arpTable);

// Get the remote ip address (the ip address of the client, the browser)
$remoteIp = $GLOBALS['REMOTE_ADDR'];
$remoteIp = str_replace(".", "\\.", $remoteIp);

// Cicle the array to find the match with the remote ip address
foreach ($arpSplitted as $value) {
// Split every arp line, this is done in case the format of the arp
// command output is a bit different than expected
$valueSplitted = split(" ",$value);
foreach ($valueSplitted as $spLine) {
if ( preg_match("/$remoteIp/",$spLine) ) {
$ipFound = true;
}

// The ip address has been found, now rescan all the string
// to get the mac address
if ($ipFound) {
// Rescan all the string, in case the mac address, in the string
// returned by arp, comes before the ip address (you know,Murphy's laws)
reset($valueSplitted);
foreach ($valueSplitted as $spLine) {
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)) {
return $spLine;
}
}
}
$ipFound = false;
}
}
return false;
}
?>[/asp]

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

User avatar
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Posts: 227
Joined: Thu 11/10/2012 9:47 am
Location: Thái Bình
Has thanked: 78 times
Been thanked: 24 times
Contact:

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

Postby QUANITGROBEST » Tue 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
Last edited by QUANITGROBEST on Wed 07/08/2013 9:59 am, edited 1 time in total.
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
Posts: 441
Joined: Fri 29/07/2011 1:00 pm
Has thanked: 11 times
Been thanked: 145 times

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

Postby DoremonA » Tue 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

User avatar
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Posts: 227
Joined: Thu 11/10/2012 9:47 am
Location: Thái Bình
Has thanked: 78 times
Been thanked: 24 times
Contact:

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

Postby QUANITGROBEST » Wed 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]

User avatar
tuyen_dt18
Guru
Guru
Posts: 261
Joined: Sat 19/04/2008 8:46 pm
Location: Hưng Yên
Been thanked: 43 times
Contact:

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

Postby tuyen_dt18 » Sat 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.

User avatar
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Posts: 227
Joined: Thu 11/10/2012 9:47 am
Location: Thái Bình
Has thanked: 78 times
Been thanked: 24 times
Contact:

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

Postby QUANITGROBEST » Mon 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]

User avatar
vietteiv
Quản trị
Quản trị
Posts: 1325
Joined: Sat 10/02/2007 12:17 am
Location: 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 times
Been thanked: 71 times
Contact:

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

Postby vietteiv » Mon 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?

User avatar
tuyen_dt18
Guru
Guru
Posts: 261
Joined: Sat 19/04/2008 8:46 pm
Location: Hưng Yên
Been thanked: 43 times
Contact:

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

Postby tuyen_dt18 » Mon 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.

User avatar
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Posts: 227
Joined: Thu 11/10/2012 9:47 am
Location: Thái Bình
Has thanked: 78 times
Been thanked: 24 times
Contact:

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

Postby QUANITGROBEST » Tue 24/09/2013 9:38 am

vietteiv wrote: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
Last edited by QUANITGROBEST on Tue 24/09/2013 9:53 am, edited 1 time in total.
http://grobest.com.vn/[url]spasenhong.vn[/url]

User avatar
QUANITGROBEST
Thành viên trung thành
Thành viên trung thành
Posts: 227
Joined: Thu 11/10/2012 9:47 am
Location: Thái Bình
Has thanked: 78 times
Been thanked: 24 times
Contact:

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

Postby QUANITGROBEST » Tue 24/09/2013 9:45 am

tuyen_dt18 wrote: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
Posts: 3
Joined: Sat 10/10/2015 5:40 pm

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

Postby hyenvnhu » Thu 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.


Return to “Lập trình Web với ASP.NET”

Who is online

Users browsing this forum: No registered users and 2 guests