`
longgangbai
  • 浏览: 7315691 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java获取系统IP地址

 
阅读更多

     在一个项目中如果你想获取系统的ip地址那么可能许多同学在想那是多么容易,但是如果在多种操作系统貌似就不那么简单了,下面看看怎么获取系统的ip地址的。

package easyway.tbs.commons;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;
import java.util.Properties;
import org.apache.log4j.Logger;
/**
 * 
 * 本机系统信息
 * @author longgangbai
 *
 */
public final class SystemHelper {
	private static final Logger logger = Logger.getLogger(SystemHelper.class);

	//获得系统属性集  
	public static Properties props=System.getProperties();
	//操作系统名称
	public static String OS_NAME=getPropertery("os.name");
	//行分页符
	public static String OS_LINE_SEPARATOR=getPropertery("line.separator");
	//文件分隔符号
	public static String OS_FILE_SEPARATOR=getPropertery("file.separator");
	
    /**
     * 
     * 根据系统的类型获取本服务器的ip地址
     * 
     * InetAddress inet = InetAddress.getLocalHost();
     * 但是上述代码在Linux下返回127.0.0.1。
     * 主要是在linux下返回的是/etc/hosts中配置的localhost的ip地址,
     * 而不是网卡的绑定地址。后来改用网卡的绑定地址,可以取到本机的ip地址:):
     * @throws UnknownHostException 
     */
    public static InetAddress getSystemLocalIp() throws UnknownHostException{
    	InetAddress inet=null;
    	String osname=getSystemOSName();
    	try {
	    	//针对window系统
			if(osname.equalsIgnoreCase("Windows XP")){
					inet=getWinLocalIp();
			//针对linux系统
			}else if(osname.equalsIgnoreCase("Linux")){
					inet=getUnixLocalIp();
			}
			if(null==inet){
				throw new UnknownHostException("主机的ip地址未知");
			}
		}catch (SocketException e) {
			logger.error("获取本机ip错误"+e.getMessage());
			throw new UnknownHostException("获取本机ip错误"+e.getMessage());
		}
		return inet;
    }
	/**
	 * 获取FTP的配置操作系统
	 * @return
	 */
	public static String getSystemOSName() {
		 //获得系统属性集  
		Properties props=System.getProperties();
		//操作系统名称
		String osname=props.getProperty("os.name");  
		if(logger.isDebugEnabled()){
			logger.info("the ftp client system os Name "+osname);
		}
		return osname;
	}
	/**
	 * 获取属性的值
	 * @param propertyName
	 * @return
	 */
	public static String getPropertery(String propertyName){
		return props.getProperty(propertyName);
	}
    
    
    /**
     * 获取window 本地ip地址
     * @return
     * @throws UnknownHostException
     */
    private static InetAddress getWinLocalIp() throws UnknownHostException{
		InetAddress inet = InetAddress.getLocalHost();     
		System.out.println("本机的ip=" + inet.getHostAddress()); 
         return inet;
	}
    /**
     * 
     * 可能多多个ip地址只获取一个ip地址
     * 获取Linux 本地IP地址
     * @return
     * @throws SocketException 
     */
	private static InetAddress getUnixLocalIp() throws SocketException{
			Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
			InetAddress ip = null; 
			while(netInterfaces.hasMoreElements())     
			{     
			    NetworkInterface ni= (NetworkInterface)netInterfaces.nextElement();     
			    ip=(InetAddress) ni.getInetAddresses().nextElement();     
			    if( !ip.isSiteLocalAddress()     
			            && !ip.isLoopbackAddress()     
			            && ip.getHostAddress().indexOf(":")==-1)     
			    {     
			    	return ip;
			    }     
			    else    
			    {     
			        ip=null;     
			    }     
			}   
		return null;
	}
    /**
     * 
     * 获取当前运行程序的内存信息
     * @return
     */
    public static final String getRAMinfo() {
        Runtime rt = Runtime.getRuntime();
        return "RAM: " + rt.totalMemory() + " bytes total, " + rt.freeMemory() + " bytes free.";
    }
}

 

分享到:
评论

相关推荐

    java 获取客户端ip mac地址

    在Windows系统中,可以使用`nbtstat -A`命令来获取指定IP地址对应的MAC地址。具体实现如下: ```java public String getMACAddress(String ip) { String str = ""; String macAddress = ""; try { Process p = ...

    java获取客户端ip及mac地址

    ### Java 获取客户端 IP 地址 在 Web 开发中,获取客户端 IP 地址是一项非常重要的功能,尤其是在需要记录用户活动、实现地理位置定位或者进行安全验证等场景下。Java 提供了多种方式来获取客户端的 IP 地址,其中...

    Java获取客户端真实IP地址

    ### Java获取客户端真实IP地址详解 在Web开发中,获取客户端的真实IP地址是一个常见的需求,尤其是在需要进行地理位置定位、安全审计、流量统计等场景下。然而,在存在反向代理服务器的环境中,传统的`request....

    获取系统IP地址浏览器java

    在Java编程语言中,获取系统IP地址是一项常见的任务,尤其在开发网络应用或者与浏览器交互时更为重要。本文将深入探讨如何在Java中获取本地主机的IP地址,并结合浏览器环境进行详细阐述。 首先,让我们理解IP地址的...

    Java获取ip所在地区

    总的来说,通过Java获取IP所在地区涉及到网络编程、二进制文件解析以及数据库操作等多个技术点。正确理解和实现这一过程,可以帮助我们在各种应用场景下,如网站访问统计、网络安全分析等,更好地处理与IP地址相关的...

    java 获取 IP 地址

    在Java编程语言中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个程序虽然界面简单,但核心功能强大,它能够帮助开发者获取指定域名对应的IP地址。以下是关于这个话题的一些详细知识点: 1. *...

    java编程实现获取服务器IP地址及MAC地址的方法

    在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...

    JAVA发送邮件和获取ip地址

    在Java编程中,发送邮件和获取IP地址是两个常见的任务,尤其在系统集成、通知服务或者数据通信中。下面将详细讲解这两个知识点。 首先,让我们来看看如何使用Java发送邮件。在Java中,我们通常使用JavaMail API来...

    idea,java获取ip地址

    当我们构建一个基于Servlet的Web应用程序时,有时需要获取访问用户的真实IP地址,这在处理用户请求、日志记录或者实现地理位置相关的功能时尤为关键。 Servlet是Java服务器端的一种组件,它扩展了Web服务器的功能,...

    ip地址管理器用java语言实现

    在IP地址管理器中,我们可能会用到InetAddress的getByName()方法来解析IP字符串,或者getHostAddress()方法来获取对象所表示的IP地址。 IP地址的过滤是指根据特定规则筛选出允许或禁止通信的IP。这可能涉及正则...

    根据IP地址获取经纬度

    标题中的“根据IP地址获取经纬度”是指在Java编程环境下,通过特定的库或API来实现从IP地址解析出地理位置的经纬度坐标。这通常涉及到网络编程和地理信息系统(GIS)的技术。描述中提到的Java工程是实现这个功能的一...

    Java中获取IP地址,主机名称,网卡地址

    Java 中获取 IP 地址、主机名称、网卡地址 Java 中获取 IP 地址、主机名称、网卡地址是 NETWORK 编程中的一个重要主题。在 Java 中,我们可以使用 InetAddress 类和 Runtime 类来获取这些信息。下面我们来详细介绍...

    获取Ip地址的Java工具类

    通过该工具类可以获得请求的IP地址,适用于后台管理系统的信息统计。

    java获取linux服务器上的IP操作

    在本文中,我们将详细介绍Java获取Linux服务器上的IP操作,包括Linux服务器上的网络接口、回环接口、获取IP地址的方法等。 Linux服务器上的网络接口 在Linux服务器上,网络接口是用来发送和接受数据包的基本设备...

    用Java来获取访问者真实的IP地址

    ### 使用Java获取访问者真实IP地址 在现代Web开发中,获取客户端的真实IP地址是非常重要的。这不仅有助于网站统计分析,还可以用于安全控制、地域限制等功能。然而,在使用如Apache、Squid等反向代理服务器的情况下...

    纯JAVA实现修改本地IP(swing界面版)

    这个类提供了解析、比较和获取IP地址相关信息的方法。在我们的程序中,我们需要用到这些方法来读取、设置和验证输入的IP地址。 4. **IO流**: `java.io`包中的IO流用于读写数据。在这个应用中,IO流可能被用来保存...

    java实现根据ip地址获取地理位置

    在Java编程中,根据IP地址获取地理位置是一项常见的需求,尤其在大数据分析、用户行为追踪或者安全防护等场景中。本文将介绍如何利用新浪和淘宝的API接口来实现这一功能。 首先,我们来看新浪的接口实现。新浪提供...

    java线程扫描ip地址

    它可以用来获取与主机名相关的IP地址,或者验证IP地址的有效性。在扫描IP时,该类扮演了关键角色。 3. **ArrayList类**: `java.util.ArrayList`是一个动态数组,用于存储可变大小的对象列表。在本代码中,`...

    java获取IP地址

    在Java编程中,获取IP地址和MAC地址是网络通信中常见的需求。IP地址标识了网络上的唯一设备,而MAC地址则是物理网络接口的唯一标识。以下是对标题和描述中涉及的知识点的详细解释: 1. **获取客户端IP地址**: - ...

    java根据ip反查省市县地址

    在Java编程中,根据IP地址反查对应的省市县地址是一项常见的需求,这通常涉及到网络编程和地理信息系统(GIS)的应用。下面将详细讲解如何利用Java实现这一功能。 首先,我们需要理解IP地址的基本概念。IP地址是由...

Global site tag (gtag.js) - Google Analytics