import java.io.*;
import java.net.*;   
public class SockTest { 
public static void main(String[] args) {

try {
InetAddress ipv4 = InetAddress.getLocalHost(); 
String nativeip = ipv4.getHostAddress().toString(); // Get local IP Address
System.out.println("Local IP Address: " + nativeip);

catch (Exception e) { 
e.printStackTrace();
}

}}

解决方案 »

  1.   

    不好意思,是点错键了,没有发完问题。查了半天API手册才找到这个方法
    java SockTest 
    Local IP Address: 220.250.64.25
    这是本机运行的结果,让我跟困惑。。
    我的机器在内网,而且外网ip也不是这个,不知道为什么就得出了这么个哭笑不得的地址。
    请问是不是我的方法用错了,或者还有没有更好的方法获取本地ip?
    另:我还试过这个方法InetAddress ipv4 = InetAddress.getByName("localhost"); 
    String nativeip = ipv4.getHostAddress().toString();
    但得到的结果是127.0.0.1
      

  2.   

    之前论坛里有个人发过一个更好的程序,能得到任意一个合法域名的IP地址。代码如下:public static void main(String[] args)
      {
      String url = "www.baidu.com";      //任意一个网站的域名
      InetAddress ip = null;
      try{
      ip = InetAddress.getByName(url);   //得到对应的IP地址
      System.out.println("域名" + url + "对应的IP地址是:" + ip.toString());
      }catch (UnknownHostException e) {
    System.out.println("输入的URL有错!");
    }
      }