package com.yc.education.util;
import java.io.IOException;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.InterfaceAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import java.util.List;
public class MachineIp {
/**
* 获取本机Ip
*
* 通过 获取系统所有的networkInterface网络接口 然后遍历 每个网络下的InterfaceAddress组。
* 获得符合 InetAddress instanceof Inet4Address
条件的一个IpV4地址
* @return
*/
@SuppressWarnings("rawtypes")
public static String localIp() {
String ip = null;
Enumeration allNetInterfaces;
try {
allNetInterfaces = NetworkInterface.getNetworkInterfaces();
while (allNetInterfaces.hasMoreElements()) {
NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
List InterfaceAddress = netInterface.getInterfaceAddresses();
for (InterfaceAddress add : InterfaceAddress) {
InetAddress Ip = add.getAddress();
if (Ip != null && Ip instanceof Inet4Address) {
ip = Ip.getHostAddress();
}
}
}
} catch (SocketException e) {
e.printStackTrace();
//logger.warn("获取本机Ip失败:异常信息:"+e.getMessage());
}
return ip;
}
public static void main(String[] args) throws IOException {
/*System.err.println(localIp());*/
SM4 sm4 = new SM4( );
String decode = sm4.decode("pVUnxpFL39NMFFupXDwBdA==", "W5#");
System.out.println(decode );
}
}