Code lấy thông tin máy tính bằng C# (Tên máy, tài khoản người dùng, phiên bản hệ điều hành, địa chỉ MAC,...)
Đăng bởi : Anonymous
11/20/2013
Code lấy tên máy, phiên bản HĐH, địa chỉ IP, địa chỉ MAC bằng C#
- Để lấy thông tin cơ bản như tên máy, tài khoản đăng nhập vào máy, phiên bản hệ điều hành ta sử đụng lớp Environment sẵn có để lấy những thông tin đó. Ví dụ: Environment.MachineName để lấy tên máy, Environment.UserName để lấy tài khoản đăng nhập vào máy,...
- Để lấy các địa chỉ IP mà máy đang có (Đang kết nối đến bao nhiêu mạng thì có bằng đó IP): http://www.thuvienwinform.tk/2013/10/code-lay-username-va-ip-cua-may.html
- Để lấy địa chỉ MAC ta sử dụng thêm using System.Net.NetworkInfomation;
Code lấy địa chỉ MAC như sau: (cảm ơn anh LNT đã share cho mình code này)
///////////////// //Lấy địa chỉ MAC //////////////// string DanhSachMAC = ""; NetworkInterface[] DanhSachCardMang = NetworkInterface.GetAllNetworkInterfaces(); for (int i = 0; i < DanhSachCardMang.Length; i++) { PhysicalAddress DiaChiMAC = DanhSachCardMang[i].GetPhysicalAddress(); DanhSachMAC += DanhSachCardMang[i].Name + " : "; byte[] ByteDiaChi = DiaChiMAC.GetAddressBytes(); for (int j = 0; j < ByteDiaChi.Length; j++) { DanhSachMAC += ByteDiaChi[j].ToString("X2"); if (j != ByteDiaChi.Length - 1) { DanhSachMAC += "-"; } } DanhSachMAC += "\r\n"; txtMAC.Text += DanhSachMAC; }
hoặc
///////////////// //Lấy địa chỉ MAC //////////////// int l, i, j=0; string MAC; while (true) { try { MAC = NetworkInterface.GetAllNetworkInterfaces()[j].GetPhysicalAddress().ToString(); //đến đây đã lấy được địa chỉ rồi nhưng chưa có dấu phân cách l = MAC.Length - 1; for (i = 0; i <= l; i++) { if (i % 2 == 0 && i != 0) txtMAC.Text += "-"; txtMAC.Text += MAC[i]; } j++; txtMAC.Text += "\r\n"; } catch { break;//Hết địa chỉ MAC rồi thì ngắt vòng lặp } }Với cách 2 chạy lâu hơn rất nhiều :) khuyến cáo không nên dùng.
bạn ơi, nếu mình muốn lấy chỉ số RSSI của mạng wifi thì dùng code nào vậy bạn
ReplyDelete@Tan Nguyenxin lỗi, mình lâu không vô email nên bây giờ mới thấy comment của bạn! Vấn đề bạn có thể giải quyết như sau:
ReplyDelete- Trong cmd có code: netsh wlan show networks mode = bssid
https://lh6.googleusercontent.com/-rmYUpbmbLcU/UxLoGFBstdI/AAAAAAAACwo/MYqfxLc5p8Q/w677-h402-no/WifiList.jpg
- Code này có thể hiển thị các mạng wifi trong khu vực, MAC, cường độ tín hiệu (cái bạn cần),...
- Cài tiến code này một chút:
netsh wlan show networks mode = bssid | findstr "Sign"
thì nó sẽ hiển thị mỗi cường độ tín hiệu thôi
Sau đó dùng code để lấy nó về là được
bạn ơi dùng phần mềm nào đẻ viết code đó..
Delete@Tan Nguyenxin lỗi, mình lâu không vô email nên bây giờ mới thấy comment của bạn! Vấn đề bạn có thể giải quyết như sau:
ReplyDelete- Trong cmd có code: netsh wlan show networks mode = bssid
https://lh6.googleusercontent.com/-rmYUpbmbLcU/UxLoGFBstdI/AAAAAAAACwo/MYqfxLc5p8Q/w677-h402-no/WifiList.jpg
- Code này có thể hiển thị các mạng wifi trong khu vực, MAC, cường độ tín hiệu (cái bạn cần),...
- Cài tiến code này một chút:
netsh wlan show networks mode = bssid | findstr "Sign"
thì nó sẽ hiển thị mỗi cường độ tín hiệu thôi
Sau đó dùng code để lấy nó về là được
ah bạn ơi, mình xài XP sp2, khi vào cmd.exe gõ netsh thì nó ra nhưng thêm wlan thì nó không ra, giống như là không hỗ trợ cho xem netsh wlan hay sao ấy, chỉ có netsh lan thôi, với lại bạn chỉ mình code C# lấy cái RSSI luôn được không, chứ mình không thấy trong C# có lớp nào hổ trợ lấy thông tin W-Fi hết á
DeleteThis comment has been removed by the author.
Deleteý tưởng của mình là lợi dụng cái code cmd để lấy thông tin nhưng win xp lại k hỗ trợ ạ, hic. Bạn thử kiểm tra lại xem. Chạy cmd với quyền quản trị.
Deletehay bạn thử tìm kiếm API wifi cho windown xem sao...có khi lại có cho C#
Deletemình lấy PC cài win 7 ra dùng câu lệnh đó được rồi, nó ra được cái signal là số %, vậy mình phải viết code C# thế nào để đưa số % đó vào trong C# @@
Deletecó thể như này:
Deleteprivate string cmd(string cmd)
{
Process p = new Process();
p.StartInfo = new ProcessStartInfo("cmd", "/c\"" + cmd + "\"")
{
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
};
p.Start();
string output = "";
output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
return output;
}
Bạn để lại Email đc không...mình nghĩ có hàm API cho nó. Nếu bạn hoặc mình tìm ra thì chia sẻ cho tiền hì :) Chứ cái cmd này chác không phải cách chuẩn
Sửa lại nha private string CmdView(string cmd)
Deletevà "cho tiền" = "cho tiện" ạ hì :)
bạn cho mình xin source được ko. email mình là congpho90[at]com cám ơn bạn
ReplyDeletehttps://www.dropbox.com/s/8xw85oo6xg8v86c/ThongTinHeDieuHanh.rar
Deletecongpho90[at]com@gmail.com ??
DeleteChỉ lấy được MAC của server thôi bạn ơi, không lấy được của Client
ReplyDelete