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;
}
}