zoukankan
html css js c++ java
C# 获取 MAC地址!
最近项目中需要一个方法,来获取本机的MAC地址。
本人最后找到两种方法来实现此功能:
方法一:直接获取
using
System;
using
System.Management;
namespace
PublicBill.GetMAC
{
class
GetMAC
{
[STAThread]
static
void
Main(
string
[] args)
{
string
mac
=
""
;
ManagementClass mc
=
new
ManagementClass(
"
Win32_NetworkAdapterConfiguration
"
);
ManagementObjectCollection moc
=
mc.GetInstances();
foreach
(ManagementObject mo
in
moc)
{
if
(mo[
"
IPEnabled
"
].ToString()
==
"
True
"
)
{
mac
=
mo[
"
MacAddress
"
].ToString();
}
}
Console.WriteLine(
"
MAC Address:
"
+
mac.ToString());
}
}
}
方法二:ARP协议的解析原理获取MAC地址
using
System;
using
System.Runtime.InteropServices;
using
System.Net;
namespace
GetMacAddress
{
class
MAC
{
[DllImport(
"
Iphlpapi.dll
"
)]
private
static
extern
int
SendARP(Int32 dest,Int32 host,
ref
ulong
mac,
ref
IntPtr length);
[DllImport(
"
Ws2_32.dll
"
)]
private
static
extern
Int32 inet_addr(
string
ip);
[STAThread]
static
void
Main(
string
[] args)
{
IPHostEntry hostInfo
=
Dns.GetHostByName(Dns.GetHostName());
IPAddress[] addrs
=
hostInfo.AddressList;
IPAddress ipAddress
=
addrs[
0
];
Int32 ldest
=
inet_addr(ipAddress.ToString());
try
{
Int32 length
=
6
;
ulong
mac
=
0
;
IntPtr len
=
new
IntPtr(length);
int
ii
=
SendARP(ldest,
0
,
ref
mac,
ref
len);
string
l
=
""
;
string
h
=
""
;
int
n
=
1
;
long
m
=
0
;
long
lm
=
(
long
)mac;
while
(lm
>
0
)
{
m
=
lm
%
16
;
lm
=
lm
/
16
;
if
(m
>
9
)
{
if
(m
==
10
)l
=
"
A
"
+
l;
if
(m
==
11
)l
=
"
B
"
+
l;
if
(m
==
12
)l
=
"
C
"
+
l;
if
(m
==
13
)l
=
"
D
"
+
l;
if
(m
==
14
)l
=
"
E
"
+
l;
if
(m
==
15
)l
=
"
F
"
+
l;
}
else
{
l
=
m.ToString()
+
1
;
}
if
((n
%
2
)
==
0
)
{
h
=
h
+
1
;
l
=
""
;
}
++
n;
}
Console.WriteLine(
"
IP Address:
"
+
ipAddress.ToString());
Console.WriteLine(
"
MAC Address:
"
+
h);
}
catch
(Exception error)
{
Console.WriteLine(error);
}
}
}
}
查看全文
相关阅读:
2019/10/21 动手动脑
2019/10/21 课堂测试---向数据库添加新用户
2019/10/14 如何在静态方法中访问类的实例成员
2019/10/14 构造函数、默认值、初始化块的优先级。
2019/10/14 动手动脑---
2019/9/30 极限测试(1)
读《程序员的修炼之道------从小工到专家》有感 1
课堂测试,统计小说<飘>前N个最常出现的单词
Java课堂 动手动脑
2019/9/23 课堂测试一 回文
原文地址:https://www.cnblogs.com/publicbill/p/250766.html
最新文章
使用 /sys 文件系统访问 Linux 内核
JNI设置C++与java的结合(2)
android 常用方法集合
在android C/C++ native编程(ndk)中使用logcat
Android NDK开发method GetStringUTFChars’could not be resolved
Android+Eclipse修改包路径
Android帧布局(Frame Layout)
android Timer与TimerTask的相关操作
Android表格布局(Table Layout)
物联网相关网站
热门文章
Python入门(一)
ASP.NET MVC & Web API项目中集成MEF
ASP.NET Web API 2入门
小项目感受不到之服务端验证
小项目感受不到系列
使用ASP.NET Web API Help Pages 创建在线接口文档
Gulp基础
在线还原数据库备份文件
手机端页面自适应之rem布局
关于LESS
Copyright © 2011-2022 走看看