C#得到局域网内所有主机名,IP地址,MAC地址

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

原文地址:C#得到局域网内所有主机名,IP地址,MAC地址作者:西西里の哈皮Kevi

private void btnCheck_Click(object sender, EventArgs e)

{

string ipAddress = this.cboBoxIp.Text.Trim();

Regex rgx = new

Regex(@"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0 -9]|25[0-5])){3}$");

if (rgx.IsMatch(ipAddress))

{

belIpResult.Text = GetName(ipAddress);

belMacResult.Text = GetMacAddress(ipAddress);

}

else

{

belIpResult.Text = "IP address is not valid.";

belMacResult.Text = "No mac result";

}

}

///

/// 得到所有局域网内机器名

///

private void GetAllLocalMachineName()

{

System.Diagnostics.ProcessStartInfo prcssStrtInfo = new

System.Diagnostics.ProcessStartInfo();

prcssStrtInfo.FileName = @"C:windowssystem32cmd.exe";

prcssStrtInfo.Arguments = @"/c net view > F:\LanMachineName.txt"; // 将所有局域网机器名输出到文本文件

prcssStrtInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

System.Diagnostics.Process.Start(prcssStrtInfo);

}

///

/// 通过Ip地址获得主机名

///

///

///

private string GetName(string IpAddress)//获取指定IP的计算机名称

{

string name="";

try

{

IPHostEntry ipHstEntry = Dns.GetHostByAddress(IpAddress);//传递IP地址 //IPHostEntry ipHstEntry = Dns.GetHostEntry(IpAddress);

name = ipHstEntry.HostName.ToString();//取得主机名

}

catch (Exception e)

{

name = e.Message;

}

return name;

}

///

/// 通过Ip得到MAC地址

///

///

///

private string GetMacAddress(string IpAddress)//得到指定IP的MAC地址

{

string macAddress = "";

Int32 ldest = 0;

try

{

ldest = inet_addr(IpAddress);

}

catch (Exception iperr)

{

MessageBox.Show(iperr.Message);

}

Int64 macinfo = new Int64();

Int32 len = 6;

try

{

int res = SendARP(ldest, 0, ref macinfo, ref len);

}

catch (Exception err)

{

// throw new Exception("在解析MAC地址过程发生了错误!");

MessageBox.Show(err.Message);

}

string originalMACAddress = macinfo.ToString("X4");

if (originalMACAddress != "0000" && originalMACAddress.Length == 12)

{ //合法MAC地址

string mac1, mac2, mac3, mac4, mac5, mac6;

mac1 = originalMACAddress.Substring(10, 2);

mac2 = originalMACAddress.Substring(8, 2);

mac3 = originalMACAddress.Substring(6, 2);

mac4 = originalMACAddress.Substring(4, 2);

mac5 = originalMACAddress.Substring(2, 2);

mac6 = originalMACAddress.Substring(0, 2);

macAddress = mac1 + ":" + mac2 + ":" + mac3 + ":" + mac4 + ":" + mac5 + ":" + mac6; //canPing = true;

}

else

{

macAddress = "无法探测到MAC地址";

//canPing = false;

}

return macAddress;

}

相关文档
最新文档