如何用命令获取指定ip地址的Mac地址

如何用命令获取指定ip地址的Mac地址,第1张

public static String getMacAddressIP(String remotePcIP) {

String str = "";

String macAddress = "";

try {

Process pp = RuntimegetRuntime()exec("nbtstat -A " + remotePcIP);

InputStreamReader ir = new InputStreamReader(ppgetInputStream());

LineNumberReader input = new LineNumberReader(ir);

for (int i = 1; i < 100; i++) {

str = inputreadLine();

if (str != null) {

if (strindexOf("MAC Address") > 1) {

macAddress = strsubstring(

strindexOf("MAC Address") + 14, strlength());

break;

}

}

}

} catch (IOException ex) {

}

return macAddress;

}

具体步骤:

建立这个程序,可以参照从这里开始的步骤。点击任务栏中的“开始”按钮,选择“所有程序”,再选择“附件”,再选择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地址了。

获取多网卡的IP地址和对应的MAC地址的具体方法如下:

1、 同时按下键盘的 windows键(四个小方框的键)+R键,打开运行窗口,输入cmd点击 确定 ;

2、 在打开的黑色窗口中输入 ping 192168199153, 按回车键;

3、 在命令行中输入 arp -a 后,按回车键,在列出的内容中会看到 192168199153 后对应的mac物理地址。

一般来说,IP地址和MAC地址是两个不同的概念,一个网卡有唯一的MAC地址,但一个网卡的IP地址则是可以无穷变化的,MAC地址和IP地址二者没有固定的关系!

但也有特殊情况,就是当把IP地址和MAC地址绑定时,一个网卡对应一个MAC地址,也只对应一个IP地址。

具体方法就是用相应的软件查看。

先了解一下IP地址,MAC地址的相关常识

Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)。

对于MAC地址,由于我们不直接和它接触,所以大家不一定很熟悉。在OSI(Open System Interconnection,开放系统互连)7层网络协议(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)参考模型中,第二层为数据链路层(Data Link)。它包含两个子层,上一层是逻辑链路控制(LLC:Logical Link Control),下一层即是我们前面所提到的MAC(Media Access Control)层,即介质访问控制层。所谓介质(Media),是指传输信号所通过的多种物理环境。常用网络介质包括电缆(如:双绞线,同轴电缆,光纤),还有微波、激光、红外线等,有时也称介质为物理介质。MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。这个地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,它都有相同的MAC地址,MAC地址一般不可改变,不能由用户自己设定。

MAC地址前24位是由生产厂家向IEEE申请的厂商地址。后24位就由生产厂家自行定拟了。(早期的2字节的却不用申请)

:IP地址和Mac地址有什么联系和区别

对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址。IP地址由用点分隔开的4个8八位组构成,如19216801就是一个IP地址,这种写法叫点分十进制格式。IP地址由网络地址和主机地址两部分组成,分配给这两部分的位数随地址类(A类、B类、C类等)的不同而不同。网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机。一个IP地址使得将来自源地址的数据通过路由而传送到目的地址变为可能。

现在有很多计算机都是通过先组建局域网,然后通过交换机和Internet连接的。然后给每个用户分配固定的IP地址,由管理中心统一管理,这样为了管理方便就需要使用Mac地址来标志用户,防止发生混乱,明确责任(比如网络犯罪)。另外IP地址和Mac地址是有区别的,虽然他们在局域网中是一一对应的关系。IP地址是跟据现在的IPv4标准指定的,不受硬件限制比较容易记忆的地址,而Mac地址却是用网卡的物理地址,多少与硬件有关系,比较难于记忆。

MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(Istitute of Electrical and Electronics Engineers,电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三个字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。

既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么还需要为每台主机再分配一个IP地址呢?或者说为什么每台主机都分配唯一的IP地址了,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的MAC地址呢?主要原因有以下几点:

(1)IP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。

(2)当存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。

(3)无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。

以上就是关于如何用命令获取指定ip地址的Mac地址全部的内容,包括:如何用命令获取指定ip地址的Mac地址、知道公网IP可以查MAC地址吗、◆如何获取多网卡的IP地址和对应的MAC地址◆等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9467277.html

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

发表评论

登录后才能评论

评论列表(0条)

保存