以下是think in java经典例子,通过机器名获得IP,  运行用 java WhoAmI WhoAmI就可以了。
import java.net.*;
public class WhoAmI {
  public static void main(String[] args) 
      throws Exception {
    if(args.length != 1) {
      System.err.println(
        "Usage: WhoAmI MachineName");
      System.exit(1);
    }
    InetAddress a = 
      InetAddress.getByName(args[0]);
    System.out.println(a);
  }
}

解决方案 »

  1.   

    这种方法虽然可以但还不完全,如果在 高级TCP/IP设置 的 IP设置 项里设了多个ip地址,这种方法也只能取出第一个,很多商用软件也是如此,有没有什么办法能取出所有的ip地址呢.
      

  2.   

    看看thinking in java 里面网络编程一章,有介绍
      

  3.   

    java.net.InetAddress中有public String getCanonicalHostName()和public String getHostName()这两个方法
    用那一个了?
    有没有人能不能帮我解释下这个方法了?
    getByAddress
    public static InetAddress getByAddress(byte[] addr)
                                    throws UnknownHostException
    这个方法和public static InetAddress getByName(String host)
                                 throws UnknownHostException
    有什么区别?