java 有没有获得本机ip地址的api?

解决方案 »

  1.   

    InetAddress addr = InetAddress.getLocalHost();
    String ip=addr.getHostAddress().toString;
    String address=addr.getHostName().toString;
      

  2.   


    import java.net.*;
    public class Test{  public static void main(String[] args){
         InetAddress addr = InetAddress.getLocalHost(); 
         String ip=addr.getHostAddress().toString; 
         String address=addr.getHostName().toString; 
         System.out.println(address);
     }
    }
      

  3.   

    ip也分外网、内网ip,我给你个新的,更通用点的import java.net.InetAddress;
    import java.net.NetworkInterface;
    import java.net.SocketException;
    import java.util.Enumeration;
    import java.util.Vector;public class IpAddress {
        public IpAddress() {
        }    public static String[] getIpAddresses() {
    String[] ipAdds = null;
    try {
        Vector ipVect = new Vector();
        Enumeration enum1 = NetworkInterface.getNetworkInterfaces();
        while (enum1.hasMoreElements()) {
    NetworkInterface netInterface = (NetworkInterface) enum1
    .nextElement();
    Enumeration enumIp = netInterface.getInetAddresses();
    while (enumIp.hasMoreElements()) {
        InetAddress inetAdd = (InetAddress) enumIp.nextElement();
        ipVect.add(inetAdd.getHostAddress());
    }
        }
        ipAdds = new String[ipVect.size()];
        ipAdds = (String[]) ipVect.toArray(ipAdds);
    } catch (SocketException ex) {
    } catch (Exception e) {
    }
    return ipAdds;
        }    public static void main(String[] a) {
    String[] ips = IpAddress.getIpAddresses();
    for (int i = 0; i < ips.length; i++) {
        System.out.println(ips[i]);
    }
        }
    }
      

  4.   

    使用7楼算法要注意:java.net.NetworkInterface 是 JDK1.4 加入的,但其中很多方法是 JDK1.6 才加入的。还要考虑兼容性。