用java得到机器的MAC,硬盘序列序列号和IP地址

该Java程序通过执行系统命令获取Windows操作系统的MAC地址、硬盘序列号和IP地址。首先,根据操作系统类型确定cmd.exe的路径,然后使用Runtime.exec()方法执行相关命令。通过读取命令输出,解析出所需信息,包括Volume Serial Number(硬盘序列号)、Physical Address(MAC地址)和IP Address。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class MacSerIpTest {

    
/**
     * 
@param args
     * 
@throws IOException
     
*/

    
public static void main(String[] args) {
        String osName 
= System.getProperty("os.name");
        StringBuffer systemPathBuff 
= new StringBuffer("");
        
if (osName.indexOf("Windows"> -1{
            
// Windows操作系统的cmd.exe的绝对路径
            systemPathBuff.append("c:/WINDOWS/system32/cmd.exe");
        }

        
if (osName.indexOf("NT"> -1{
            
// NT操作系统的cmd.exe的绝对路径
            systemPathBuff.append("c:/WINDOWS/command.com");
        }

        
// 
        Process pro = null;
        
try {

            
// Serial Number 的得到
            
// 此语句相当于在cmd下面执行 dir的命令.并得到命令执行完毕后的输出流
            pro = Runtime.getRuntime().exec(systemPathBuff.toString() + " /c dir");
            InputStream is 
= pro.getInputStream();
            BufferedReader br 
= new BufferedReader(new InputStreamReader(is));
            
// 读取第一行
            String message = br.readLine();
            
// Serial Number 的零时变量
            String serNuResult = null;
            
int index = -1;
            
while (message != null{
                
if ((index = message.indexOf("Volume Serial Number is")) > 0{
                    serNuResult 
= message.substring(index + 24).trim();
                    
break;
                }

                
// 读取下一行
                message = br.readLine();
            }

            System.out.println(serNuResult);
            
// Mac地址的得到
            
// 此语句相当于在cmd下面执行 ipconfig/all 的命令.并得到命令执行完毕后的输出流
            pro = Runtime.getRuntime().exec(systemPathBuff.toString() + " /c ipconfig/all");
            is 
= pro.getInputStream();
            br 
= new BufferedReader(new InputStreamReader(is));
            
// 读取第一行
            message = br.readLine();
            
// Mac地址 的零时变量
            String macResult = null;
            
while (message != null{
                
if ((index = message.indexOf("Physical Address")) > 0{
                    macResult 
= message.substring(index + 36).trim();
                    
break;
                }

                
// 读取下一行
                message = br.readLine();
            }

            System.out.println(macResult);
            
// 读取下一行
            message = br.readLine();
            
// Mac地址和IP地址 的得到
            
// IP地址 的零时变量
            String ipResult = null;
            
while (message != null{
                
if ((index = message.indexOf("IP Address")) > 0{
                    ipResult 
= message.substring(index + 36).trim();
                    
break;
                }

                
// 读取下一行
                message = br.readLine();
            }

            System.out.println(ipResult);
            
// 读入流的关闭
            br.close();
            pro.destroy();
        }
 catch (IOException e) {
            System.out.println(
"Can't get mac address!");
        }

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值