用java得到本机所有的ip地址

  1. 2006-04-19 @ Tag 应用技巧   人气:2485

    package com.sourceware.util;

    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.log4j.Logger;
    import java.net.InetAddress;
    import java.util.Enumeration;
    import java.net.NetworkInterface;
    import java.util.*;

    /**
     *
     * <p>Title: Sourceware utils.</p>
     *
     * <p>Description: Sourceware utils.</p>
     *
     * <p>Copyright: Copyright (c) 2005</p>
     *
     * <p>Company: Sourceware inc.</p>
     *
     * @author 黑山(woowind@sina.com)
     * @version 1.0
     */
    public class NetUtil {

      static Logger logger = Logger.getLogger(NetUtil.class);

      public NetUtil() {
      }

      /**
       *
       * @param url String
       * @return int
       * @throws Exception
       */
      public static int clickURL(String url) throws Exception {
        int retrycount = 3;
        while (true) {
          HttpClient httpClient = new HttpClient();
          GetMethod get = new GetMethod(url);
          get.addRequestHeader("Content-Type", "text/html; charset=GBK");
          int code = httpClient.executeMethod(get);
          if (code != 200) {
            if (retrycount == 0) {
              throw new Exception("发送失败,失败原因=" + code);
            }
            logger.error("send to[" + url + "]error code[" + code + "]");
            retrycount--;
          }
          else {
            return code;
          }

        } //end while(true)...
      }

      /**
       *
       * @return Collection
       */
      public static Collection getAllLocalIP() throws Exception {
        ArrayList ar = new ArrayList();
        Enumeration netInterfaces = NetworkInterface.getNetworkInterfaces();
        while (netInterfaces.hasMoreElements()) {
          NetworkInterface ni = (NetworkInterface) netInterfaces.nextElement();
          InetAddress ip = (InetAddress) ni.getInetAddresses().nextElement();
          if (!ip.isSiteLocalAddress() && !ip.isLoopbackAddress() &&
              ip.getHostAddress().indexOf(":") == -1) {
            System.out.println("Interface " + ni.getName() +
                               " seems to be InternetInterface. I'll take it..."); ;
          }
          else {
            ar.add(ip.getHostAddress());
          }
        }
        return ar;
      }

      public static void main(String[] args) {
        try {
          NetUtil.getAllLocalIP();
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
      }
    }

    转载:http://blog.csdn.net/woowindice/archive/2006/04/18/667960.aspx


感谢易载提供各种支持!
文章分类