zoukankan      html  css  js  c++  java
  • Java 获取本机IP地址

    在使用 Java 开发网络程序时,有时候我们需要知道本机在局域网中的 IP 地址。Java 在 JDK1.4 的时候添加的一个类: NetworkInterface 。

    上代码:

    import java.net.Inet4Address;
    import java.net.InetAddress;
    import java.net.NetworkInterface;
    import java.net.SocketException;
    import java.util.Enumeration;
    
    public class GetLocalIpAddressTest {
        
        public static void main(String[] args) throws SocketException {
         // 获得本机的所有网络接口
            Enumeration<NetworkInterface> nifs = NetworkInterface.getNetworkInterfaces();
    
            while (nifs.hasMoreElements()) {
                NetworkInterface nif = nifs.nextElement();
            
                // 获得与该网络接口绑定的 IP 地址,一般只有一个
                Enumeration<InetAddress> addresses = nif.getInetAddresses();
                while (addresses.hasMoreElements()) {
                    InetAddress addr = addresses.nextElement();
            
                    System.out.println(addr.getAddress().length);
                    if (addr instanceof Inet4Address) { // 只关心 IPv4 地址
                        System.out.println("网卡接口名称:" + nif.getName());
                        System.out.println("网卡接口地址:" + addr.getHostAddress());
                        System.out.println();
                   }
                }
            }
            
        }
        
    }
    

    IP地址打印如下:

    4
    网卡接口名称:lo
    网卡接口地址:127.0.0.1

    16
    4
    网卡接口名称:eth3
    网卡接口地址:192.168.95.101


    4
    网卡接口名称:eth4
    网卡接口地址:192.168.117.1

    16
    4
    网卡接口名称:eth5
    网卡接口地址:192.168.72.1

  • 相关阅读:
    LeetCode 345. Reverse Vowels of a String 题解
    LeetCode 344. Reverse String 题解
    LeetCode 27. Remove Element 题解
    LeetCode 61. Rotate List 题解
    LeetCode 19.Remove Nth Node From End of List 题解
    Android耗电量
    Android 使用adb查看和修改电池信息
    Android AOP AspectJ 插桩
    Flask相关用法
    Monkey日志信息的11种Event percentage
  • 原文地址:https://www.cnblogs.com/foxting/p/8521111.html
Copyright © 2011-2022 走看看