【主题】:java获取linux或者window上的IP列表

应公司需求,需要获取服务器上的多网卡ip,然后从中筛选用户自己想要的IP,需要用java实现。

public static void getLinuxOrWinIP(){
		List<Map<String, String>> ipList=new ArrayList<Map<String,String>>();
		Enumeration<NetworkInterface> allNetInterfaces;  					//定义网络接口枚举类
		try {
			allNetInterfaces = NetworkInterface.getNetworkInterfaces();  	//获得网络接口
 
			InetAddress ip = null; 											//声明一个InetAddress类型ip地址
			while (allNetInterfaces.hasMoreElements()) 						//遍历所有的网络接口
			{
				NetworkInterface netInterface = allNetInterfaces.nextElement();
//				System.out.println(netInterface.getName());  				//打印网端名字
				Enumeration<InetAddress> addresses = netInterface.getInetAddresses(); //同样再定义网络地址枚举类
				while (addresses.hasMoreElements())
				{
					ip = addresses.nextElement();
					if (ip != null && (ip instanceof Inet4Address)) 		//InetAddress类包括Inet4Address和Inet6Address
					{
						Map<String, String> ipMap=new HashMap<String, String>();
						ipMap.put("netName", netInterface.getDisplayName());
						ipMap.put("ip", ip.getHostAddress());
						ipMap.put("first", "false");							//当有多个ip时,优先推荐使用此ip					
						if(!"127.0.0.1".equals(ip.getHostAddress())){			//过滤掉127.0.0.1
							ipList.add(ipMap);
						}
						logger.info("本机可选IP:"+ip.getHostAddress());
//						System.out.println("本机的IP = " + ip.getHostAddress());
					} 
				}
			}
			
		//将ip列表放入缓存中
		CxCacheUtil.getIntance().setValue("ipList", new Gson().toJson(ipList));
		
		} catch (SocketException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
	}

 

 发表评论     发表时间:『2019-01-07 16:29:33』


扫描二维码关注网站最新动态