package com.zy.system.entity.license; 
 | 
  
 | 
import java.net.InetAddress; 
 | 
import java.util.List; 
 | 
import java.util.Scanner; 
 | 
import java.util.stream.Collectors; 
 | 
  
 | 
/** 
 | 
 * 用于获取客户Windows服务器的基本信息 
 | 
 */ 
 | 
public class WindowsServerInfos extends AbstractServerInfos { 
 | 
  
 | 
    @Override 
 | 
    protected List<String> getIpAddress() throws Exception { 
 | 
        List<String> result = null; 
 | 
  
 | 
        //获取所有网络接口 
 | 
        List<InetAddress> inetAddresses = getLocalAllInetAddress(); 
 | 
  
 | 
        if(inetAddresses != null && inetAddresses.size() > 0){ 
 | 
            result = inetAddresses.stream().map(InetAddress::getHostAddress).distinct().map(String::toLowerCase).collect(Collectors.toList()); 
 | 
        } 
 | 
  
 | 
        return result; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    protected List<String> getMacAddress() throws Exception { 
 | 
        List<String> result = null; 
 | 
  
 | 
        //1. 获取所有网络接口 
 | 
        List<InetAddress> inetAddresses = getLocalAllInetAddress(); 
 | 
  
 | 
        if(inetAddresses != null && inetAddresses.size() > 0){ 
 | 
            //2. 获取所有网络接口的Mac地址 
 | 
            result = inetAddresses.stream().map(this::getMacByInetAddress).distinct().collect(Collectors.toList()); 
 | 
        } 
 | 
  
 | 
        return result; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    protected String getCPUSerial() throws Exception { 
 | 
        //序列号 
 | 
        String serialNumber = ""; 
 | 
  
 | 
        //使用WMIC获取CPU序列号 
 | 
        Process process = Runtime.getRuntime().exec("wmic cpu get processorid"); 
 | 
        process.getOutputStream().close(); 
 | 
        Scanner scanner = new Scanner(process.getInputStream()); 
 | 
  
 | 
        if(scanner.hasNext()){ 
 | 
            scanner.next(); 
 | 
        } 
 | 
  
 | 
        if(scanner.hasNext()){ 
 | 
            serialNumber = scanner.next().trim(); 
 | 
        } 
 | 
  
 | 
        scanner.close(); 
 | 
        return serialNumber; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    protected String getMainBoardSerial() throws Exception { 
 | 
        //序列号 
 | 
        String serialNumber = ""; 
 | 
  
 | 
        //使用WMIC获取主板序列号 
 | 
        Process process = Runtime.getRuntime().exec("wmic baseboard get serialnumber"); 
 | 
        process.getOutputStream().close(); 
 | 
        Scanner scanner = new Scanner(process.getInputStream()); 
 | 
  
 | 
        if(scanner.hasNext()){ 
 | 
            scanner.next(); 
 | 
        } 
 | 
  
 | 
        if(scanner.hasNext()){ 
 | 
            serialNumber = scanner.next().trim(); 
 | 
        } 
 | 
  
 | 
        scanner.close(); 
 | 
        return serialNumber; 
 | 
    } 
 | 
} 
 |