boolean isIPv4Address(String ipAddress) String getLocalHostIp() String getLocalIPAddress()

 

import com.skex.InetAddressUtils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.NetworkInterface;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.util.Enumeration;

class  LocalIPAddress
{
    public static void main(String[] args) 
    {
        LocalIPAddress testObj=new LocalIPAddress();
        System.out.println("getLocalHostIp returns: " + testObj.getLocalHostIp());

        System.out.println("Hello World!");
        System.out.println("getLocalIPAddress returns: " + testObj.getLocalIPAddress());
    }



      public String getLocalHostIp() {
        String ipaddress = "";
        try {
            Enumeration<NetworkInterface> en = NetworkInterface
                    .getNetworkInterfaces();
            // 遍历所用的网络接口
            while (en.hasMoreElements()) {
                NetworkInterface nif = en.nextElement();// 得到每一个网络接口绑定的所有ip
                Enumeration<InetAddress> inet = nif.getInetAddresses();
                // 遍历每一个接口绑定的所有ip
                while (inet.hasMoreElements()) {
                    InetAddress ip = inet.nextElement();
                    //System.out.println(ip.getHostAddress());
                    if (!ip.isLoopbackAddress()
                            && InetAddressUtils.isIPv4Address(ip.getHostAddress())
                        ) {
                        return ip.getHostAddress();
                    }/*else{
                        System.out.println(ip.getHostAddress()+" isLoopback or ipv6 Address.");
                    }*/
                }
            }
        }
        catch(SocketException e)
        {
                //Log.e("feige", "获取本地ip地址失败");
                e.printStackTrace();
        }
        return ipaddress;
    }
 
    private String getLocalIPAddress() {
        try {
            for (Enumeration<NetworkInterface> en = NetworkInterface
                    .getNetworkInterfaces(); en.hasMoreElements();) {
                NetworkInterface intf = en.nextElement();
                for (Enumeration<InetAddress> enumIpAddr = intf
                        .getInetAddresses(); enumIpAddr.hasMoreElements();) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()
                    && InetAddressUtils.isIPv4Address(inetAddress.getHostAddress())    
                    ) {
                        return inetAddress.getHostAddress().toString();
                    }
                }
            }
        } catch (SocketException ex) {
            //Log.e(LOG_TAG, ex.toString());
        }
        return null;
    }

}

 

package com.skex;

public class InetAddressUtils 
{
    public static boolean isIPv4Address(String ipAddress)
    {
        if((! ipAddress.contains(":"))&& ipAddress.contains(".")){
            String[] arry=ipAddress.split("\\.");
            return arry.length==4;
        }
        return false;
    }
}

 

posted @ 2017-10-25 09:54  sky20080101  阅读(551)  评论(0)    收藏  举报