在linux用java根据ip获得mac地址

在linux用java根据ip获得mac地址,第1张

try {

  ip = InetAddressgetLocalHost();

  NetworkInterface network = NetworkInterfacegetByInetAddress(ip);

  if (network != null) {

    byte[] mac = networkgetHardwareAddress();

    if(mac != null) {

      Systemoutprint("MAC address : ");

      StringBuilder sb = new StringBuilder();

      for (int i = 0; i < maclength; i++) {

        sbappend(Stringformat("%02X%s", mac[i], (i < maclength - 1)  "-" : ""));        

      }

      Systemoutprintln(sbtoString());  

   }

} catch (UnknownHostException e) {

  eprintStackTrace();

} catch (SocketException e) {

  eprintStackTrace();

}

以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地址了。

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;

}

以上就是关于在linux用java根据ip获得mac地址全部的内容,包括:在linux用java根据ip获得mac地址、如何查局域网某ip的mac地址、JAVA中如何获取指定IP的MAC地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存