永发信息网

java怎样获取以太网的MAC地址

答案:3  悬赏:40  手机版
解决时间 2021-01-08 04:32
java怎样获取以太网的MAC地址
最佳答案
读取ipconfig/all里面的内容:
public static String checkPhysicalAddress() {  
          String physicalAddress ="";
           try {  
            
               String line;  
               Process process = Runtime.getRuntime().exec("cmd /c ipconfig /all");  
               BufferedReader bufferedReader = new BufferedReader(  
                       new InputStreamReader(process.getInputStream()));
               int temp=1;
               int switchon=0;
               while ((line = bufferedReader.readLine()) != null) {
                 if(switchon ==1){
                    temp++;
                 }
                 if(line.indexOf("以太网适配器 本地连接:") !=-1){
                    switchon=1;
                    continue;
                 }
                
                   if (temp == 5) {  
                   line = bufferedReader.readLine();
                   System.out.println("1:"+line);
                       if (line.indexOf(":") != -1) {  
                       physicalAddress = line.substring(line.indexOf(":") + 2).replaceAll("-", "").trim();  
                           break; //找到MAC,推出循环  
                       }  
                   }  
               }  
               //process.waitFor();  
           } catch (Exception e) {  
               e.printStackTrace();  
           }  
           return physicalAddress;  
       }
一行一行的读取命令行的东西,直到我们想要的一行
如下图我们需要的是“以太网适配器 本地链接:”这里面的物理地址,上面的代码就是找到这一行,然后再下去五行就是我们要的MAC地址

全部回答
#include
#include
#include
#include
#include
#include
#include
char *device="eth0"; //eth0是网卡设备名
unsigned char macaddr[ETH_ALEN]; //ETH_ALEN(6)是MAC地址的长度
main()
{
int s=socket(AF_INET,SOCK_DGRAM,0); //建立套接口
int i;
struct ifreq req;
strcpy(req.ifr_name,device); //将设备名作为输入参数传入
int err = ioctl(s,SIOCGIFHWADDR,&req); //执行取MAC地址操作
close(s);
if(err!=-1)
{
memcpy(macaddr,req.ifr_hwaddr.sa_data,ETH_ALEN); //取输出的MAC地址
for(i=0;i printf("%3d:",macaddr[i]);
}
}
/*然后用gcc编译,再用./a.out
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
暗黑破坏神3追随者传奇宝石能受益吗?
从棠东到车陂总站怎么走
企业上年未经审计,怎么关注对期初余额的审计
求问做完会计继续教育之后还要办什么手续??
2.572-60=72+60怎么解
我可以购买地铁充值卡吗?
在淘宝上买的东西被别人签收了,怎么办
行政拘留到时间后去接人还办什么手续吗?
中央空调压缩机油位报警是什么原因
《《霜降清铃》蔓凉》最新txt全集下载
若函数f(x)唯一的零点同时在区间(1,3),(1,
细菌合成胰岛素是什么技术
想卖陶瓷制品,在哪进货好?
场景手办是什么
如果有一天,世界已改变,当沧海变成桑田,你
推荐资讯
怎么干黄邻居同行,和隔壁老板打了一架我想弄
三星sp-m300 stand by灯长亮不开机
求大神解答 求不定积分
谁有使命召唤14豪华版(单人战役+多人游戏+BO
单选题I’llbebusy____________thisFridaybu
一女的给我发 fa ke 这是啥意思啊
(40-0.72x口) 421.6÷17=37.44口等于几
厦门(pose)皮肤管理里的Bubble O2 Cleansin
在《通往广场的路不止一条》课文里回答问题
汤阴君御宾馆地址在什么地方,我要处理点事!
安徒生是哪国的作家?假如这位童话作家来到你
怎么选择全彩led城市道路交通诱导屏尺寸
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?