- package hope.ipaddress.demo;
- import java.net.InetAddress;
- import java.net.NetworkInterface;
- import java.net.SocketException;
- import java.util.Enumeration;
- /**
- * 获取当前服务器IP
- * @author hp
- *
- */
- public class IpDemo {
- /**
- * @param args
- */
- public static void main(String[] args) {
- System.out.println(getMyIp());
- }
- @SuppressWarnings("rawtypes")
- public static String getMyIp() {
- String localip =null;// 本地IP,如果没有配置外网IP则返回它String netip =null;// 外网IP
- try {
- Enumeration netInterfaces = NetworkInterface.getNetworkInterfaces();
- InetAddress ip =null;
- booleanfinded =false;// 是否找到外网IP
- while(netInterfaces.hasMoreElements() && !finded) {
- NetworkInterface ni = (NetworkInterface) netInterfaces.nextElement();
- Enumeration address = ni.getInetAddresses();
- while (address.hasMoreElements()) {
- ip = (InetAddress) address.nextElement();
- if(!ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1) {// 外网IPnetip = ip.getHostAddress();
- finded =true;
- break;
- } else if(ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1) {// 内网IPlocalip = ip.getHostAddress();
- }
- }
- }
- } catch (SocketException e) {
- e.printStackTrace();
- }
- if(netip !=null&& !"".equals(netip)) {
- return netip;
- } else {
- return localip;
- }
- }
- }
来源: