如何查局域网某ip的mac地址

如何查局域网某ip的mac地址,第1张

以XP系统为例,具体步骤:

建立这个程序,可以参照从这里开始的步骤。点击任务栏中的“开始”按钮,选择“所有程序”,再选择“附件”,再选择d出菜单中的“记事本”,打开记事本程序:

将以下内容复制到记事本,另存为后缀为bat的批处理文件:

COLOR 0A

CLS

@ECHO Off

Title 查询局域网内在线电脑IP

:send

@ECHO off&setlocal enabledelayedexpansion

ECHO 正在获取本机的IP地址,请稍等

for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do (

set "IP=%%i"

set IP=!IP:~1,-1!

ECHO 本机IP为:!IP!

goto :next

)

:next

for /f "delims= tokens=1,2,3,4" %%i in ("%IP%") do set range=%%i%%j%%k

ECHO&ECHO 正在获取本网段内的其它在线计算机名,请稍等

ECHO 本网段%range%内的计算机有:

for /f "delims=" %%i in ('net view') do (

set "var=%%i"

::查询在线计算机名称

if "!var:~0,2!"=="\\" (

set "var=!var:~2!"

ECHO !var!

ping -n 1 !var!>nul

))

ECHO

ECHO 正在获取本网段内的其它在线计算机IP,请稍等

for /f "skip=3 tokens=1, delims= " %%i in ('arp -a') do ECHO IP: %%i 正在使用

ECHO

ECHO 查询完毕,按任意键退出

pause>nul

在记事本窗口中,点击“文件”菜单,从d出菜单中选择“另存为”命令,在“保存类型”中选择“所有文件”,将“文件名”保存为bat的文件,如“查看局域网在线IPbat”。

打开运行该执行文件,在窗口中输入命令“nbtstat -a IP”,如以上面查到的“1010321”为例,输入“nbtstat -a 1010321”,则显示结果为:

就可以看到对方IP的mac地址了。

查看无线路由器上连接了几台设备及其MAC地址的方法:

1、电脑连接无线路由器任一LAN口,打开浏览器,地址栏输入路由器网关地址(路由器背后标签上有的),进入设置页面。

2、点击“无线设置”—“主机状态”—查看右侧“当前所连接的主机数”。这样就能看到连接到这个无线路由器的设备的MAC地址了。

命令提示符查看

最简单通俗的办法就是直接,打开命令提示符(开始---运行==输入cmd) 界面输入,ipconfig  /all 可以看到网卡的物理地址,如图部分

常规方法

除此之外,其实很多用户电脑命令提示符被禁用了。那么怎么查看网卡MAC地址呢?

打开任务栏右下角----找到 “打开网络和共享中心”(如果是XP系统直接查看最后一步) 如下图

出现的网络和共享中心菜单中,找到“更改适配器设置”如箭头位置

然后就能看到当前系统的网卡设备了,找到需要查看的网卡设备如“本地连接”选择“状态”可以查看网卡详细信息

本地连接状态对话框打开之后,点击下方的“详细信息” 随后里面的描述中找到“物理地址‘ 就是MAC地址啦

在家用路由器上,如果局域网是动态分配的地址,以TPlink为例,在“DHCP客户端”链接里可以找到,如果是静态分配的地址,在“静态地址分配”链接里可以找到。上述关键字在不同设备和版本上不尽相同,也不一定是一模一样的字样,有的在arp列表里。

在支持命令行的专业路由器上,用show arp或display arp可以查询到。

arp是所有路由器支持的协议,通过ip去查询mac地址,将三层报文在数据链路层上传输,路由器通过此协议周期性与局域网所有电脑交互信息,目的是确保路由器与电脑之间是否互通。

最简单的办法,ping那台主机,然后进入cmd模式,执行arp -a命令,即可看到该主机mac地址。

使用局域网扫描软件可以搜索整个网段的主机和mac,网上有很多,如Lanhelper。

DOS窗口,输入: arp -a,显示所有机器mac。

或者下个局域网软件,点击扫描。比如IP BOOK

FYI:

有时候,我们需要获得所在局域网中所有的主机的MAC地址,不巧,手中又恰恰没有合适的软件。难道我们就束手无策了么?

其实,使用一些DOS命令,完全可以胜任这个工作,而且,效果会比某些软件好的多。

下面介绍下我的思路:

还记得ARP命令么?,利用ARP缓存信息,就可以得到我想要的局域网机器的MAC地址了。呵呵,理了一下思路,动手 *** 作,效果非常好,就连一些试用版、破解版的MAC扫描工具扫不出的有些机器的信息ARP里都有!如何实施呢?

用Ping 命令,先Ping 一下局域网中的机器IP,因为我想在本地机器的ARP缓存信息里得到想要的MAC地址信息。只有Ping 过局域网中在线机器,本地机器的ARP缓存就会记录下Ping 过的机器的IP与MAC地址信息,也就是说,本地机器发出个数据包,目标机器会有一个应答,这个应答里含有IP地址和MAC地址的信息,这些个信息会晢存 在本地机器的ARP缓存里。在本地机器上,用ARP -a就可全部显示出来了。(防火墙或者过滤包的方法也无法禁止ARP的查看,远程计算机不返回Ping成功的消息但会告诉本地计算机该IP地址对应的 MAC地址。有些MAC扫描工具因对方防火墙的原因而无法得到对方的IP和Mac信息。)

有了这些思路,就差不多了。可我总不能一个一个的去Ping 啊,于是我就写个批处理,批量检测局域网中在线的机器。例如要查看1921680这个网段中有哪些地址在线。在桌面上点鼠标右键新建一个文本文件后输入如下代码:

FOR /L %%i IN (0,1,255) Do ping 1921680%%i -n 1

arp -a -> MACtxt

将该文件保存为bat文件,双击这个批处理文件将自动搜索网段中的所有IP,并且将发现出的ARP信息都保存到MACtxt文件中。

arp –a ->MACtxt 这行命令表示将ARP显示的结果保存到 MACtxt的文本文件中。

如果只是想Ping某一部分IP而不是所有该网段中的IP,可以将上面命令行中 IN(0,1,255) 中1,255是<指IP的范围>改写。

注意:批处理没有程序报错功能,所以,IP的范围应严格在1,255之间,防止机器执行批处理时发生意外^_^)。比如,我只想扫描192168010至1921680200之间的IP与MAC信息,可以这样写:

FOR /L %%i IN (0,10,200) Do ping 1921680%%i -n 1

arp -a -> MACtxt

提示:扫描过程中可以使用“ctrl+c”命令进行中断。

跨网段获取MAC地址方法如下:

protected void Page_Load(object sender, EventArgs e)

{

//ReadMSG();

if (!IsPostBack)

{

Label1Text =

"//客户端ip:" +

RequestServerVariablesGet("Remote_Addr")ToString() + "<br>" +

" //客户端主机名:" +

RequestServerVariablesGet("Remote_Host")ToString() + "<br>" +

"//客户端浏览器IE:" +

RequestBrowserBrowser + "<br>" +

"//客户端浏览器 版本号:" +

RequestBrowserMajorVersion + "<br>" +

"//客户端 *** 作系统:" +

RequestBrowserPlatform + "<br>" +

"//服务器ip:" +

RequestServerVariablesGet("Local_Addr")ToString() + "<br>" +

"//服务器名:" +

RequestServerVariablesGet("Server_Name")ToString() + "<br>";

string stringMAC = "";

string stringIP = "";

ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection MOC = MCGetInstances();

foreach (ManagementObject MO in MOC)

{

if ((bool)MO["IPEnabled"] == true)

{

stringMAC += MO["MACAddress"]ToString(); //获取网卡的地址

string[] IPAddresses = (string[])MO["IPAddress"]; //获取本地的IP地址

if (IPAddressesLength > 0)

stringIP = IPAddresses[0];

Label1Text += "<br>MAC:" + stringMAC + "/ IP:" + stringIP;

if (stringIP == "192168145")

Label1Text += "<br>I get you :192168145<br>";

}

}

//在页面上打印出客户端的网卡物理地址(MAC)

//ResponseWrite(thisGetMac(RequestUserHostAddressToString())+"<br>");

GetInfo();

}

}

//获取cpu序列号,硬盘ID,网卡MAC地址

private void GetInfo()

{

string cpuInfo = "";//cpu序列号

ManagementClass cimobject = new ManagementClass("Win32_Processor");

ManagementObjectCollection moc = cimobjectGetInstances();

foreach (ManagementObject mo in moc)

{

cpuInfo = moProperties["ProcessorId"]ValueToString();

Label1Text += "cpu序列号:" + cpuInfoToString();

}

//获取硬盘ID

String HDid;

ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");

ManagementObjectCollection moc1 = cimobject1GetInstances();

foreach (ManagementObject mo in moc1)

{

HDid = (string)moProperties["Model"]Value;

Label1Text += "硬盘序列号:" + HDidToString();

}

}

//protected void Button1_Click(object sender, EventArgs e)

//{

// try

// {

// FileDelete(@"D:\htmlhtml");

// }

// catch (Exception e2)

// {

// ResponseWrite(e2Message);

// }

// ResponseWrite("Delete Successed!");

//}

//获取远程客户端的网卡物理地址(MAC)

public string GetMac(string IP) //para IP is the client's IP

{

string dirResults = "";

ProcessStartInfo psi = new ProcessStartInfo();

Process proc = new Process();

psiFileName = "nbtstat";

psiRedirectStandardInput = false;

psiRedirectStandardOutput = true;

psiArguments = "-A " + IP;

psiUseShellExecute = false;

proc = ProcessStart(psi);

dirResults = procStandardOutputReadToEnd();

procWaitForExit();

dirResults = dirResultsReplace("\r", "")Replace("\n", "")Replace("\t", "");

Regex reg = new Regex("Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(<key>(()))__MAC", RegexOptionsIgnoreCase | RegexOptionsCompiled);

Match mc = regMatch(dirResults + "__MAC");

if (mcSuccess)

{

return mcGroups["key"]Value;

}

else

{

reg = new Regex("Host not found", RegexOptionsIgnoreCase | RegexOptionsCompiled);

mc = regMatch(dirResults);

if (mcSuccess)

{

return "Host not found!";

}

else

{

return "";

}

}

}

以上就是关于如何查局域网某ip的mac地址全部的内容,包括:如何查局域网某ip的mac地址、Android如何获取到连接的WIFI无线路由器的所有客户端的MAC地址、如何获取网卡MAC地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9378007.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存