获取本机IP地址,非127.0.0.1

来源:互联网 发布:淘宝上的老王手办 编辑:程序博客网 时间:2024/05/23 19:20

    public static boolean validateIP(String ip){
        boolean rtv = true;
        String digiStr = "0123456789";
        StringTokenizer s=  new StringTokenizer(ip,".");
        while(s.hasMoreElements()){
            String oneBlock = (String)s.nextElement();
            
            boolean findOneBlockF = false;
            for(int i=0;i<oneBlock.length();i++){
                String c = ""+oneBlock.charAt(i);
                if ( digiStr.indexOf(c) == -1){
                    findOneBlockF = true;
                    break;
                }
            }
            
            if ( findOneBlockF ) {
                rtv = false;
                break;
            }
            
        }
        
        return rtv;
    }
    public static String getIps(){
        ArrayList<String> ips = new ArrayList<String>();
        try{
            Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
            while (interfaces.hasMoreElements()) { // carte reseau trouvee
                NetworkInterface interfaceN = (NetworkInterface)interfaces.nextElement();
                Enumeration<InetAddress> ienum = interfaceN.getInetAddresses();
                while (ienum.hasMoreElements()) { // retourne l adresse IPv4 et IPv6
                    InetAddress ia = ienum.nextElement();
                    String adress = ia.getHostAddress().toString();
                    if( adress.length() < 16){ //On s'assure ainsi que l'adresse IP est bien IPv4
                        if(adress.startsWith("127")){ //Ce n'est pas l'adresse IP Local'
                            //System.out.println(ia.getHostAddress());
                        }else if(adress.indexOf(":") > 0){
                            //System.out.println(ia.getHostAddress()); // les ":" indique que c'est une IPv6"
                        }
                    }
                    ips.add(adress);
                }
            }
        }catch(Exception e){
            System.out.println("pas de carte reseau");
            e.printStackTrace();
        }
        
        String localIP = "127.0.0.1";
        String rtv = "";
        if ( ips.size() > 0 ){
            for(int i=0; i< ips.size();i++){
                String ipTmp = ips.get(i);
                if ( ipTmp.equalsIgnoreCase( localIP )){
                    continue;
                } else {
                    rtv = ips.get(i);
                    if  ( validateIP(rtv ))
                        break;
                    else
                        continue;
                }
            }
        }
        return rtv;
    }

显示机器名

import java.net.InetAddress;
import java.net.UnknownHostException;

public class Test {
     
    public static void main(String[] args) throws UnknownHostException   {
        System.out.println(InetAddress.getLocalHost().getHostName());   //机器名
        System.out.println(InetAddress.getLocalHost().getHostAddress());   //127.0.0.1
    }
}

原创粉丝点击