⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 networkinfo.java

📁 打印管理程序,测试完全通过.windows开发环境.
💻 JAVA
字号:
/*
    $Author: $
    $Date: $
    $Revision: $
    $NoKeywords: $
*/
package jp.co.ntl;

import java.io.Serializable;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class NetworkInfo implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
    private String host = null;
    private String domain = null;
    private String workgroup = null;
    private String driver = null;
    private boolean useDhcp = false;
    private int[] ip = null;
    private int[] subnet = null;
    private int[] gateway = null;
    private int[] dns = null;
    private boolean useMail = false;
    private int[] smtp = null;
    private boolean useNtp = false;
    private int[] ntp = null;
    private boolean useFtpProxy = false;
    private int[] ftpProxy = null;
    private int ftpProxyPort;
    
    //host
    public final String getHost() { return host; }
    public final void setHost(String host) { this.host = host; }
    
    //domain
    public final String getDomain() { return domain; }
    public final void setDomain(String domain) { this.domain = domain; }
    
    //workgroup
    public final String getWorkgroup() { return workgroup; }
    public final void setWorkgroup(String workgroup) { this.workgroup = workgroup; }

    //driver
    public final String getDriver() { return driver; }
    public final void setDriver(String driver) { this.driver = driver; }

    //dhcp
    public final boolean isUseDhcp() { return useDhcp; }
    public final void setUseDhcp(boolean useDhcp) { this.useDhcp = useDhcp; }

    //ip
    public final int[] getIp() { return ip; }
    public final void setIp(int[] ip) { this.ip = ip; }
    public final void setIp(String ip) { this.ip = split(ip); }
    
    //subnet
    public final int[] getSubnet() { return subnet; }
    public final void setSubnet(int[] subnet) { this.subnet = subnet; }
    public final void setSubnet(String subnet) { this.subnet = split(subnet); }
    
    //gateway
    public final int[] getGateway() { return gateway; }
    public final void setGateway(int[] gateway) { this.gateway = gateway; }
    public final void setGateway(String gateway) { this.gateway = split(gateway); }
    
    //dns
    public final int[] getDns() { return dns; }
    public final void setDns(int[] dns) { this.dns = dns; }
    public final void setDns(String dns) { this.dns = split(dns); }
    
    //mail
    public final boolean isUseMail() { return useMail; }
    public final void setUseMail(boolean useMail) { this.useMail = useMail; }

    //smtp
    public final int[] getSmtp() { return smtp; }
    public final void setSmtp(int[] smtp) { this.smtp = smtp; }
    public final void setSmtp(String smtp) { 
        this.smtp = split(smtp);
        if (this.smtp == null) {
            useMail = false;
        } else {
            useMail = true;
        }
    }
            
    //ntp
    public final boolean isUseNtp() { return useNtp; }
    public final void setUseNtp(boolean useNtp) { this.useNtp = useNtp; }
    
    public final int[] getNtp() { return ntp; }
    public final void setNtp(int[] ntp) { this.ntp = ntp; }
    public final void setNtp(String ntp) {
        this.ntp = split(ntp);
        if (this.ntp == null) {
            useNtp = false;
        } else {
            useNtp = true;
        }
    }
    
    //ftp proxy
    public final boolean isUseFtpProxy() { return useFtpProxy; }
    public final void setUseFtpProxy(boolean useFtpProxy) { this.useFtpProxy = useFtpProxy; }
    
    public final int[] getFtpProxy() { return ftpProxy; }
    public final void setFtpProxy(int[] ftpProxy) { this.ftpProxy = ftpProxy; }
    public final void setFtpProxy(String ftpProxy) {
        this.ftpProxy = split(ftpProxy);
        if (this.ftpProxy == null) {
            useFtpProxy = false;
        } else {
            useFtpProxy = true;
        }
    }

    public final int getFtpProxyPort() { return ftpProxyPort; }
    public final void setFtpProxyPort(int ftpProxyPort) { this.ftpProxyPort = ftpProxyPort; }
    public final void setFtpProxyPort(String ftpProxyPort) {
        try {
            this.ftpProxyPort = Integer.parseInt(ftpProxyPort);
            useFtpProxy = true;
        } catch (NumberFormatException e) {
            useFtpProxy = false;
        }
    }

    /**
     * 僐儅儞僪偐傜僨乕僞傪撉傒崬傓丅
     */
    public void readFromCommand(String command) throws IOException {
        int index;
        String key, value;
        Process p = Runtime.getRuntime().exec(command);
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String s;
        while ((s = br.readLine()) != null) {
            if ((index = s.indexOf(' ')) == -1) {
                break;
            }
            key = s.substring(0, index);
            value = s.substring(index + 1);
            put(key, value);
        }
        br.close();
    }
    
    /**
     * 僼傽僀儖偐傜僨乕僞傪撉傒崬傓丅
     */
    public void readFromFile(String networkFile) throws FileNotFoundException, IOException {
        int index;
        String key, value;
        FileReader fr = new FileReader(networkFile);
        BufferedReader br = new BufferedReader(fr);
        String s;
        while ((s = br.readLine()) != null) {
            if ((index = s.indexOf(' ')) == -1) {
                break;
            }
            key = s.substring(0, index);
            value = s.substring(index + 1);
            put(key, value);
        }
        br.close();
    }
    
    /**
     * 僼傽僀儖偵僨乕僞傪彂偒崬傓丅
     */
    public void writeToFile(String networkFile) throws IOException {
        FileWriter fw = new FileWriter(networkFile);
        BufferedWriter bw = new BufferedWriter(fw);
        if (host != null) {
            bw.write("host " + host);
            bw.newLine();
        }
        if (domain != null) {
            bw.write("domain " + domain);
            bw.newLine();
        }
        if (workgroup != null) {
            bw.write("workgroup " + workgroup);
            bw.newLine();
        }
        if (driver != null) {
            bw.write("driver " + driver);
            bw.newLine();
        }
        if (!useDhcp) {
            if (ip != null) {
                bw.write("ip ");
                bw.write(join(ip));
                bw.newLine();
            }
            if (subnet != null) {
                bw.write("subnet ");
                bw.write(join(subnet));
                bw.newLine();
            }
            if (gateway != null) {
                bw.write("gateway ");
                bw.write(join(gateway));
                bw.newLine();
            }
        }
        if (dns != null) {
            bw.write("dns ");
            bw.write(join(dns));
            bw.newLine();
        }            
        if (useMail) {
            if (smtp != null) {
                bw.write("smtp ");
                bw.write(join(smtp));
                bw.newLine();
            }
        }
        if (useNtp) {
            if (ntp != null) {
                bw.write("ntp ");
                bw.write(join(ntp));
                bw.newLine();
            }
        }
        if (useFtpProxy) {
            if (ftpProxy != null) {
                bw.write("ftpproxy ");
                bw.write(join(ftpProxy));
                bw.newLine();
            
                bw.write("ftpproxyport " + ftpProxyPort);
                bw.newLine();
            }
        }
        bw.close();
    }

    public void put(String key, String value) {
        if (key.equals("host")) {
            setHost(value);           
        } else if (key.equals("domain")) {
            setDomain(value);
        } else if (key.equals("workgroup")) {
            setWorkgroup(value);
        } else if (key.equals("driver")) {
            setDriver(value);
        } else if (key.equals("dhcp")) {
            int dhcp = Integer.parseInt(value);
            if (dhcp != 0) setUseDhcp(true);
            else           setUseDhcp(false);
        } else if (key.equals("ip")) {
            setIp(split(value));
        } else if (key.equals("subnet")) {
            setSubnet(split(value));
        } else if (key.equals("gateway")) {
            setGateway(split(value));
        } else if (key.equals("dns")) {
            setDns(splitDNS(value));
        } else if (key.equals("smtp")) {
            int[] smtp = split(value);
            if (smtp == null) {
                setUseMail(false);
            } else {
                setUseMail(true);
                setSmtp(smtp);
            }
        } else if (key.equals("ntp")) {
            int[] ntp = split(value);
            if (ntp == null) {
                setUseNtp(false);
            } else {
                setUseNtp(true);
                setNtp(ntp);
            }
        } else if (key.equals("ftpproxy")) {
            int[] ftpproxy = split(value);
            if (ftpproxy == null) {
                setUseFtpProxy(false);
            } else {
                setUseFtpProxy(true);
                setFtpProxy(ftpproxy);
            }
        } else if (key.equals("ftpproxyport")) {
            try {
                int port = Integer.parseInt(value);
                setFtpProxyPort(port);            
            } catch (NumberFormatException e) {
            }
        }
    }

    private int[] split(String address) {
        if (address == null) {
            return null;
        }
        int[] a = new int[4];
        StringTokenizer st = new StringTokenizer(address, ".");
        for (int i = 0; i < 4; i++) {
            if (st.hasMoreTokens()) {
                a[i] = Integer.parseInt(st.nextToken());
            } else {
                return null;
            }
        }
        return a;
    }
    
	private static int[] splitDNS(String address) {
		if (address == null) {
			return null;
		}
		int[] a = new int[4];
		StringTokenizer st = new StringTokenizer(address, ".");
		//Dns偼桪愭搙弴偵暋悢偺傾僪儗僗偑搊榐偝傟傞偙偲偑偁傞丅乮"0.0.0.0, 0.0.0.0"摍乯
		//奺傾僪儗僗傪嬫愗傞暥帤偼OS偵埶懚偡傞偨傔丄悢抣偐偳偆偐偱敾抐偡傞丅
		for (int i = 0; i < 4; i++) {
			if (st.hasMoreTokens()) {
				String token = st.nextToken();
				if (i < 3) {
					a[i] = Integer.parseInt(token);	
				} else {
					int cnt = 0;
					for (; cnt < token.length(); cnt++) {
						if (!Character.isDigit(token.charAt(cnt))) {
							break;
						}
					}
					if (cnt > 0) {
						a[i] = Integer.parseInt(token.substring(0, cnt));
					} else {
						a[i] = Integer.parseInt(token);	
					}				
				}
			} else {
				return null;
			}
		}
		return a;
	}

    private String join(int[] a) { 
        if (a == null || a.length < 4) {
            return null;
        }
        StringBuffer sb = new StringBuffer();
        sb.append(a[0]);
        sb.append('.');
        sb.append(a[1]);
        sb.append('.');
        sb.append(a[2]);
        sb.append('.');
        sb.append(a[3]);
        return new String(sb);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -