毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> WEB开发 >> 正文

如何用脚本根据mac设置windows网卡多个IP?

更新时间:2014-11-21:  来源:毕业论文

现在已知网卡的mac地址,要根据mac地址设置这个网卡的ip地址,子网掩码,dns等信息。
还要设置一个网卡多个IP地址,如何是好呢?

现在我会修改一个网卡的单个IP:
 
netsh interface ip set address "本地连接" static 192.168.0.201 255.255.255.0 192.168.0.1 1
netsh interface ip set dns "本地连接" static 8.8.8.8
netsh interface ip add dns "本地连接" 8.8.4.4

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
/**
 * 与系统相关的一些常用工具方法.
 *
 * @author stephen
 * @version 1.0.0
 */
public class SystemTool {
 
    /**
     * 获取当前操作系统名称.
     * return 操作系统名称 例如:windows xp,linux 等.
     */
    public static String getOSName() {
        return System.getProperty("os.name").toLowerCase();
    }
    
    /**
     * 获取unix网卡的mac地址.
     * 非windows的系统默认调用本方法获取.如果有特殊系统请继续扩充新的取mac地址方法.
     * @return mac地址
     */
    public static String getUnixMACAddress() {
        String mac = null;
        BufferedReader bufferedReader = null;
        Process process = null;
        try {
            process = Runtime.getRuntime().exec("ifconfig eth0");// linux下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息
            bufferedReader = new BufferedReader(new InputStreamReader(process
                    .getInputStream()));
            String line = null;
            int index = -1;
            while ((line = bufferedReader.readLine()) != null) {
                index = line.toLowerCase().indexOf("hwaddr");// 寻找标示字符串[hwaddr]
                if (index >= 0) {// 找到了
                    mac = line.substring(index +"hwaddr".length()+ 1).trim();//  取出mac地址并去除2边空格
                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (bufferedReader != null) {
                    bufferedReader.close();
                }
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            bufferedReader = null;
            process = null;
        }
 
        return mac;
    }
 
    /**
     * 获取widnows网卡的mac地址.
     * @return mac地址
     */
    public static String getWindowsMACAddress() {
        String mac = null;
        String netName = null;
        BufferedReader bufferedReader = null;
        Process process = null;
        try {
            process = Runtime.getRuntime().exec("ipconfig /all");// windows下的命令,显示信息中包含有mac地址信息
            bufferedReader = new BufferedReader(new InputStreamReader(process
                    .getInputStream()));
            String line = null;
            int index = -1;
            int index1 = -1;
            while ((line = bufferedReader.readLine()) != null) {
                index1 = line.toLowerCase().indexOf("以太网适配器");
                index = line.toLowerCase().indexOf("物理地址");// 寻找标示字符串[physical address]
                if (index1 >= 0) {// 找到了
                    index1 = line.indexOf(" ");// 寻找":"的位置
                    if (index1>=0) {
                        netName = line.substring(index1+1).trim();//  取出mac地址并去除2边空格
                        netName = netName.substring(0, netName.length()-1);
                        System.out.println(netName);
                    }
//                    break;
                }
                
                if (index >= 0) {// 找到了
                    index = line.indexOf(":");// 寻找":"的位置
                    if (index>=0) {
                        mac = line.substring(index + 1).trim();//  取出mac地址并去除2边空格
                        System.out.println(mac);
                    }
//                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (bufferedReader != null) {
                    bufferedReader.close();
                }
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            bufferedReader = null;
            process = null;
        }
 
        return null;
    }
    /**
     * 测试用的main方法.
     *
     * @param argc
     *            运行参数.
     */
    public static void main(String[] argc) {
        String os = getOSName();
        System.out.println(os);
        if(os.startsWith("windows")){
            //本地是windows
            String mac = getWindowsMACAddress();
            System.out.println(mac);
        }else{
            //本地是非windows系统 一般就是unix
            String mac = getUnixMACAddress();
            System.out.println(mac);
        }
    }
}

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。