
我自己写的 你可以参考一下 using systemnetNetworkInformation
private void button1_Click(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterfaceGetAllNetworkInterfaces();
thislistBox1ItemsClear();
//远程服务器ip
string remoteHostNameAddress = thistextBox1TextTrim();
//构造Ping实例
Ping pingSender = new Ping();
//Ping选项设置
PingOptions options = new PingOptions();
optionsDontFragment = true;
//测试数据
string data = "test data abcabc";
byte[] buffer = EncodingASCIIGetBytes(data);
//设置超时时间
int timeout = 120;
//调用同步send方法发送数据,将返回结果保存至PingReply实例
PingReply reply = pingSenderSend(remoteHostNameAddress, timeout, buffer, options);
if (replyStatus == IPStatusSuccess)
{
foreach (NetworkInterface adapter in adapters)
{
listBox1ItemsAdd("答复的主机地址:" + replyAddressToString());
listBox1ItemsAdd("往返时间:" + replyRoundtripTime);
listBox1ItemsAdd("生存时间(TTL):" + replyOptionsTtl);
listBox1ItemsAdd("MAC地址:" + adapterGetPhysicalAddress());
}
}
else
{
listBox1ItemsAdd(replyStatusToString());
}
}
在按钮的click事件中写以下代码Process p = ProcessStart("C:\\11exe"); //启动一个进程,并运行一个exe文件 //获取IP地址string IPAdressString = "0000";
IPAddress ipAddress =DnsGetHostEntry(getHostName())AddressList[0];
IPAdressString = ipAddressToString(); //获取MACSystemManagementManagementClass mc = new SystemManagementManagementClass("Win32_NetworkAdapterConfiguration");
SystemManagementManagementObjectCollection moc = mcGetInstances();
SystemTextStringBuilder sb = new SystemTextStringBuilder();
foreach(SystemManagementManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true) {
sbAppend(mo["MacAddress"]ToString()); }
moDispose();
}
string mac = sbToString();
第一个实际上是去执行nbtstat这个应用程序,然后取得应用程序执行后的结果处理后变成MAC地址,就相当于不停的再运行nbtstat这个程序。
第二个是直接调用了windows系统DLL的函数,相当于直接调用函数库,取得了结果,当然稳定性什么的要比第一种来的要好
以上就是关于C# winform点击按钮获取指定ip的mac地址代码怎么写全部的内容,包括:C# winform点击按钮获取指定ip的mac地址代码怎么写、想做个WinForm程序,在点击一下按钮就实现打开另外一个已有的应用程序,以及检测主机的IP和MAC、c# winform 中我需要通过ip获取局域网中某设备的mac地址,通过网上搜索,有2种获取方式,但是结果不同等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)