找回密码
 会员注册
查看: 36|回复: 0

Java获取IP地址以及MAC地址(附Demo)

[复制链接]

5

主题

0

回帖

16

积分

新手上路

积分
16
发表于 2024-9-3 20:10:39 | 显示全部楼层 |阅读模式
目录前言1.IP及MAC2.特定适配器前言需要获取客户端的IP地址以及MAC地址importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclasstest{publicstaticvoidmain(String[]args){try{//执行命令Processprocess=Runtime.getRuntime().exec("ipconfig/all");//读取命令输出BufferedReaderreader=newBufferedReader(newInputStreamReader(process.getInputStream()));Stringline;while((line=reader.readLine())!=null){//输出命令结果System.out.println(line);}}catch(IOExceptione){e.printStackTrace();}}}12345678910111213141516171819202122纯用CMD可能权限不够,可能格式可能乱码等问题后续转为网络编程API接口网络适配器的IPv4和MAC地址,最好直接使用Java的网络编程API,而不是通过执行系统命令来获取,可以使用java.net.NetworkInterface类来获取网络接口的信息,然后进一步筛选出所需的适配器信息在获取本地主机信息时,要考虑多网卡的情况,确保准确获取所需的网络适配器信息对于操作系统信息的获取,可以考虑使用更可靠的方式,如System.getProperty()方法1.IP及MACimportjava.net.InetAddress;importjava.net.NetworkInterface;importjava.net.SocketException;importjava.util.Enumeration;publicclasstest{publicstaticvoidmain(String[]args){try{//获取所有网络接口Enumerationinterfaces=NetworkInterface.getNetworkInterfaces();while(interfaces.hasMoreElements()){NetworkInterfacenetworkInterface=interfaces.nextElement();//输出网络接口名称System.out.println("NetworkInterface:"+networkInterface.getDisplayName());//获取该网络接口的所有地址Enumerationaddresses=networkInterface.getInetAddresses();while(addresses.hasMoreElements()){InetAddressaddress=addresses.nextElement();//输出地址信息System.out.println("Address:"+address.getHostAddress());}//获取MAC地址byte[]mac=networkInterface.getHardwareAddress();if(mac!=null){StringBuildersb=newStringBuilder();for(inti=0;iinterfaces=NetworkInterface.getNetworkInterfaces();while(interfaces.hasMoreElements()){NetworkInterfacenetworkInterface=interfaces.nextElement();//检查是否是你想要的网络适配器,这里假设名字为"VMwareNetworkAdapterVMnet8"if(networkInterface.getDisplayName().equals("VMwareVirtualEthernetAdapterforVMnet8")){//获取该网络接口的所有地址Enumerationaddresses=networkInterface.getInetAddresses();while(addresses.hasMoreElements()){InetAddressaddress=addresses.nextElement();//过滤IPv4地址if(addressinstanceofjava.net.Inet4Address){//输出IPv4地址System.out.println("IPv4Address:"+address.getHostAddress());}}//获取MAC地址byte[]mac=networkInterface.getHardwareAddress();if(mac!=null){StringBuildersb=newStringBuilder();for(inti=0;i
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-28 06:13 , Processed in 0.536990 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表