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

📄 networkkit.java

📁 JGAP是一种遗传算法和遗传规划的组成部分提供了一个Java框架。它提供了基本的遗传机制
💻 JAVA
字号:
/*
 * This file is part of JGAP.
 *
 * JGAP offers a dual license model containing the LGPL as well as the MPL.
 *
 * For licensing information please see the file license.txt included with JGAP
 * or have a look at the top of class org.jgap.Chromosome which representatively
 * includes the JGAP license policy applicable for any file delivered with JGAP.
 */
package org.jgap.util;

import java.net.*;
import java.util.*;
import java.io.*;

/**
 * Houses network related functionality.
 *
 * @author Klaus Meffert
 * @since 2.4
 */
public final class NetworkKit {
  /** String containing the CVS revision. Read out via reflection!*/
  private final static String CVS_REVISION = "$Revision: 1.4 $";

  /**
   * Private constructor because it's a utility class.
   */
  private NetworkKit() {
  }

  /**
   * @return IP address string in textual presentation
   * @throws UnknownHostException
   *
   * @author Klaus Meffert
   * @since 2.4
   */
  public static String getLocalIPAddress()
      throws UnknownHostException {
    return InetAddress.getLocalHost().getHostAddress();
  }

  /**
   * @return name of the computer calling this function locally
   * @throws UnknownHostException
   *
   * @author Klaus Meffert
   * @since 2.4
   */
  public static String getLocalHostName()
      throws UnknownHostException {
    return InetAddress.getLocalHost().getHostName();
  }

  /**
   * Taken and adapted from UUID.
   *
   * @return MAC address of the current computer.
   *
   * @since 3.3.3
   */
  public static String getMACAddress() {
    String macAddress = null;
    Process p = null;
    BufferedReader in = null;
    try {
      String osname = System.getProperty("os.name");
      if (osname.startsWith("Windows")) {
        p = Runtime.getRuntime().exec(
            new String[] {"ipconfig", "/all"}, null);
      }
      // Solaris code must appear before the generic code
      else if (osname.startsWith("Solaris") || osname.startsWith("SunOS")) {
        String hostName = SystemKit.getFirstLineOfCommand(new String[] {"uname",
            "-n"});
        if (hostName != null) {
          p = Runtime.getRuntime().exec(
              new String[] {"/usr/sbin/arp", hostName}, null);
        }
      }
      else if (new File("/usr/sbin/lanscan").exists()) {
        p = Runtime.getRuntime().exec(
            new String[] {"/usr/sbin/lanscan"}, null);
      }
      else if (new File("/sbin/ifconfig").exists()) {
        p = Runtime.getRuntime().exec(
            new String[] {"/sbin/ifconfig", "-a"}, null);
      }
      if (p != null) {
        in = new BufferedReader(new InputStreamReader(
            p.getInputStream()), 128);
        String l = null;
        while ( (l = in.readLine()) != null) {
          macAddress = StringKit.parse(l);
          if (macAddress != null
              && NumberKit.parseShort(macAddress) != 0xff)
            break;
        }
      }
    } catch (SecurityException ex) {} catch (IOException ex) {} finally {
      if (p != null) {
        if (in != null) {
          try {
            in.close();
          } catch (IOException ex) {}
        }
        try {
          p.getErrorStream().close();
        } catch (IOException ex) {}
        try {
          p.getOutputStream().close();
        } catch (IOException ex) {}
        p.destroy();
      }
    }
    return macAddress;
  }


  public static void main(String[] args) {
    System.out.println(getMACAddress());
  }
}

⌨️ 快捷键说明

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