在内网中如何跨网段根据IP地址查找到mac地址

时间:542次浏览2017.02.24提问

在内网中如何跨网段根据IP地址查找到mac地址

已解决问题

hao231知道平台可亲可爱的匿名用户网友在542次浏览2017.02.24提问提了关于操作系统通信网络电脑安全相关的问题,他的提问这样在内网中如何跨网段根据IP地址查找到mac地址操作系统通信网络电脑安全希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

第1个回答

南京新华电脑专修学院2017.03.03回答跨网段获取MAC地址方法如下:protectedvoidPage_Load(objectsender,EventArgse){//ReadMSG();if(!IsPostBack){Label1.Text="//客户端ip:"+Request.ServerVariables.Get("Remote_Addr").ToString()+"<br>"+"//客户端主机名:"+Request.ServerVariables.Get("Remote_Host").ToString()+"<br>"+"//客户端浏览器IE:"+Request.Browser.Browser+"<br>"+"//客户端浏览器版本号:"+Request.Browser.MajorVersion+"<br>"+"//客户端操作系统:"+Request.Browser.Platform+"<br>"+"//服务器ip:"+Request.ServerVariables.Get("Local_Addr").ToString()+"<br>"+"//服务器名:"+Request.ServerVariables.Get("Server_Name").ToString()+"<br>";stringstringMAC="";stringstringIP="";ManagementClassMC=newManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectCollectionMOC=MC.GetInstances();foreach(ManagementObjectMOinMOC){if((bool)MO["IPEnabled"]==true){stringMAC+=MO["MACAddress"].ToString();//获取网卡的地址string[]IPAddresses=(string[])MO["IPAddress"];//获取本地的IP地址if(IPAddresses.Length>0)stringIP=IPAddresses[0];Label1.Text+="<br>MAC:"+stringMAC+"/IP:"+stringIP;if(stringIP=="192.168.1.45")Label1.Text+="<br>Igetyou:192.168.1.45<br>";}}//在页面上打印出客户端的网卡物理地址(MAC)//Response.Write(this.GetMac(Request.UserHostAddress.ToString())+"<br>");GetInfo();}}//获取cpu序列号,硬盘ID,网卡MAC地址privatevoidGetInfo(){stringcpuInfo="";//cpu序列号ManagementClasscimobject=newManagementClass("Win32_Processor");ManagementObjectCollectionmoc=cimobject.GetInstances();foreach(ManagementObjectmoinmoc){cpuInfo=mo.Properties["ProcessorId"].Value.ToString();Label1.Text+="cpu序列号:"+cpuInfo.ToString();}//获取硬盘IDStringHDid;ManagementClasscimobject1=newManagementClass("Win32_DiskDrive");ManagementObjectCollectionmoc1=cimobject1.GetInstances();foreach(ManagementObjectmoinmoc1){HDid=(string)mo.Properties["Model"].Value;Label1.Text+="硬盘序列号:"+HDid.ToString();}}//protectedvoidButton1_Click(objectsender,EventArgse)//{//try//{//File.Delete(@"D:\html.html");//}//catch(Exceptione2)//{//Response.Write(e2.Message);//}//Response.Write("DeleteSuccessed!");//}//获取远程客户端的网卡物理地址(MAC)publicstringGetMac(stringIP)//paraIPistheclient'sIP{stringdirResults="";ProcessStartInfopsi=newProcessStartInfo();Processproc=newProcess();psi.FileName="nbtstat";psi.RedirectStandardInput=false;psi.RedirectStandardOutput=true;psi.Arguments="-A"+IP;psi.UseShellExecute=false;proc=Process.Start(psi);dirResults=proc.StandardOutput.ReadToEnd();proc.WaitForExit();dirResults=dirResults.Replace("\r","").Replace("\n","").Replace("\t","");Regexreg=newRegex("Mac[]{0,}Address[]{0,}=[]{0,}(<key>((.)*))__MAC",RegexOptions.IgnoreCase|RegexOptions.Compiled);Matchmc=reg.Match(dirResults+"__MAC");if(mc.Success){returnmc.Groups["key"].Value;}else{reg=newRegex("Hostnotfound",RegexOptions.IgnoreCase|RegexOptions.Compiled);mc=reg.Match(dirResults);if(mc.Success){return"Hostnotfound!";}else{return"";}}}

第2个回答

aranya2017.03.03回答第一种获取远程MAC的方法是使用命令arp-a(示例:arp-a192.168.20.36),在命令行输入“arp-a192.168.20.36”,按回车,获取到的物理地址就是所谓的MAC地址;第二种获取远程MAC的方法是使用命令nbtstat-a(示例:nbtstat-a192.168.20.36),在命令行输入"nbtstat-a192.168.20.36",按回车,使用这个命令的好处就是不仅能获取到MAC地址,还能获取到远程电脑的电脑名称和所属工作组。