`
Rainbow702
  • 浏览: 1076694 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类

Java获取本地IP (windos平台、linux平台)

    博客分类:
  • Java
阅读更多
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;

public final class StringUtil {

	public static void main(String[] args) {
		System.out.println("get local ip for windows: ");
		printList(getAllLocalHostIPForWin());

		System.out.println();
		System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
		System.out.println();

		System.out.println("get local ip for linux: ");
		printList(getAllLocalHostIPForLinux());
	}

	/**
	 * @return
	 */
	private static String getLocalHostName() {
		String hostName;
		try {
			InetAddress addr = InetAddress.getLocalHost();
			hostName = addr.getHostName();
		} catch (Exception ex) {
			hostName = "";
		}
		return hostName;
	}

	/**
	 * @return
	 */
	public static List<String> getAllLocalHostIPForWin() {
		List<String> ret = new ArrayList<String>();
		try {
			String hostName = getLocalHostName();
			if (hostName.length() > 0) {
				InetAddress[] addrs = InetAddress.getAllByName(hostName);
				if (addrs.length > 0) {
					for (int i = 0; i < addrs.length; i++) {
						ret.add(addrs[i].getHostName() + "  ->  " + addrs[i].getHostAddress());
					}
				}
			}

		} catch (Exception ex) {
			ret = null;
		}
		return ret;
	}

	// 上面这个方法在linux平台上将只能获取 127.0.0.1
	// 为了获取到linux上的IP地址,请使用下面的方法。
	// 但下面的这个方法也可用于windows平台,但获取的信息比真实的网卡信息要多。请自行分辨。
	
	/**
	 * @return
	 */
	public static List<String> getAllLocalHostIPForLinux() {
		List<String> ret = new ArrayList<String>();
		try {
			Enumeration<?> e1 = (Enumeration<?>) NetworkInterface.getNetworkInterfaces();
			NetworkInterface ni = null;
			while (e1.hasMoreElements()) {
				ni = (NetworkInterface) e1.nextElement();
				Enumeration<?> e2 = ni.getInetAddresses();
				InetAddress ia = null;
				while (e2.hasMoreElements()) {
					ia = (InetAddress) e2.nextElement();
					ret.add(ia.getHostName() + "  ->  " + ia.getHostAddress());
				}

			}

		} catch (SocketException e) {
			e.printStackTrace();
		}

		return ret;
	}

	/**
	 * 
	 * @param list
	 */
	public static void printList(List<String> list) {
		for (String ele : list) {
			System.out.println(ele);
		}
	}
}

 我本地的运行结果截图如下:



 

  • 大小: 132.7 KB
分享到:
评论

相关推荐

    Java版Linux文件上传下载、windows本地文件上传下载

    在Java编程环境中,实现Linux与Windows之间的文件上传和下载是一项常见的任务,特别是在分布式系统和跨平台应用中。本文将深入探讨如何使用Java技术实现在Linux和Windows之间进行文件的互传,以及创建一个HTML界面来...

    windos,linux下jdk可执行文件.rar

    同时,它也包含了Linux平台上的JDK安装程序,尽管未明确指出具体格式,但通常Linux下的软件安装会是tar.gz或者rpm等格式。 【标签】"jdk1.8" 表明这些JDK版本是1.8,也被称为Java 8。这是一个非常重要的版本,因为...

    java 读取FTP服务器文件

    在Java编程环境中,读取FTP(File Transfer Protocol)服务器上的文件是一项常见的任务,尤其是在Web服务器和Linux系统环境下。FTP提供了一种可靠的方式来传输文件,使得应用程序可以远程访问和操作存储在FTP服务器...

    linux+windos mysql 制主从同步

    linux+windos mysql 制主从同步 mysql跨平台

    FRP内网穿透软件 支持windos和linux 系统

    FRP内网穿透软件 支持windos和linux 系统

    jdk1.8,windos和linux在一起

    运维人员经常需要在多平台上部署和管理Java环境,因此掌握在Windows和Linux上安装JDK的方法至关重要。在Windows上,安装过程相对直观,而Linux则更依赖于命令行操作和环境变量配置。此外,对于服务器环境,通常推荐...

    Samba实现Windos与linux文件共享.docx

    在Linux服务器上,你可以用以下命令获取: ```bash ip addr show ``` 找到与网络接口相关的IP地址,如`inet`字段下的值。 ### 测试连接 在Windows中,打开“文件资源管理器”,在地址栏输入`\\&lt;Linux_IP&gt;`,然后按...

    ZooKeeper3.4.9 windos和linux

    《ZooKeeper 3.4.9:在Windows与Linux上的部署与应用》 ZooKeeper,一个由Apache基金会开发的分布式协调服务,是许多大型分布式系统中的关键组件。3.4.9版本是ZooKeeper的一个稳定版本,提供了一系列增强功能和性能...

    java写的仿windos的记事本

    Java,作为一种跨平台、面向对象的编程语言,以其强大的可移植性和丰富的类库,成为了许多开发者的首选。本文将详细解析一个由Java编写的仿Windows记事本程序,它不仅具备了与原版记事本相似的基本功能,还增加了...

    windows下java访问hid设备

    Java本身并不提供直接访问USB设备的API,但我们可以利用JNI来桥接Java和本地(C或C++)代码,从而调用系统级别的USB API。JNI允许Java代码调用原生方法,执行底层系统功能。 在描述中提到的"jnativetest"可能是包含...

    Linux系统设计-WebFile 用go语言开发的浏览器文件管理系统,支持windows,linux,MacOS

    许多知名的云计算服务提供商都采用Linux系统作为其基础架构,一些游戏平台和游戏开发工具采用Linux作为支持的操作系统,例如Steam平台上的某些游戏。Linux系统在科学计算、数据分析和机器学习等领域也有广泛应用。...

    超详细!java访问windows共享目录并下载文件

    - 在获取到共享目录的访问权限后,我们可以使用Java的I/O流来读取和下载文件。这通常涉及`FileInputStream`(用于读取远程文件)和`FileOutputStream`(用于写入本地文件)。`SmbUtils.java`中的某个方法可能负责从...

    tb-解析工具-本地windos系统

    tb-解析工具-本地windos系统; tb-解析工具-本地windos系统; tb-解析工具-本地windos系统

    java-windos安装包-pc端

    Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台的总称,最初推出的时候提出 “Write Once, Run Anywhere” 的理想愿景。Java 是一门面向对象编程语言,不仅吸收了 C/C++ 语言...

    windos与虚拟机linux之间的文件交换方法

    - **配置Linux虚拟机网络**:首先,需要将Linux虚拟机的网络配置改为静态IP,确保它与Windows主机在同一子网内。这可以通过`Main Menu &gt; System Setting &gt; Network &gt; Edit &gt; Statically set IP addresses`来完成。 ...

    JS获取客户端IP MAC(只支持IE浏览器)

    这是个HTML文件,可通过IE浏览器打开并获取客户端IP地址和MAC地址(注意:只支持IE浏览器哦。。。)

    文件按照window 的排序规则-Java实现

    在Java中,可以使用`File[] listFiles()`方法获取目录下的所有文件,然后通过`Arrays.sort()`排序,但默认是区分大小写的。若要实现不区分大小写的排序,需自定义比较器: ```java Arrays.sort(files, new ...

    Linux下共享windos文件

    Linux下共享Windos文件 小白必备专用干货,实际操作案例分享,老司机手册。

    linux和windos共享设置和oracle配置

    linux和windos共享设置和oracle配置

    定时器,linux Windos

    定时器在计算机编程中是一种非常重要的工具,尤其在操作系统如Linux和Windows中,它们被广泛用于执行周期性任务或在特定时间点触发某些操作。定时器功能的实现依赖于操作系统提供的API(应用程序接口)和系统服务,...

Global site tag (gtag.js) - Google Analytics