千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  千锋问问  > java获取本机ip地址的方法怎么操作

java获取本机ip地址的方法怎么操作

java获取本机ip地址 匿名提问者 2023-09-12 15:10:34

java获取本机ip地址的方法怎么操作

我要提问

推荐答案

  在Java中,你可以使用多种方法来获取本机的IP地址。下面将介绍三种常用的方法。

千锋教育

  方法一:使用InetAddress类

  InetAddress类提供了获取本机IP地址的简单方式。你可以通过调用其中的静态方法getLocalHost()来获取本机的InetAddress对象,然后再调用getHostAddress()方法获取本机的IP地址。

  import java.net.InetAddress;

  import java.net.UnknownHostException;

  public class GetIPAddress {

  public static void main(String[] args) {

  try {

  InetAddress localHost = InetAddress.getLocalHost();

  String ipAddress = localHost.getHostAddress();

  System.out.println("本机IP地址是:" + ipAddress);

  } catch (UnknownHostException e) {

  e.printStackTrace();

  }

  }

  }

 

  上述代码将输出本机的IP地址。

  方法二:使用NetworkInterface类

  另一种获取本机IP地址的方法是使用NetworkInterface类。通过遍历所有的网络接口,我们可以获取每个网络接口对应的IP地址。

  import java.net.InetAddress;

  import java.net.NetworkInterface;

  import java.net.SocketException;

  import java.util.Enumeration;

  public class GetIPAddress {

  public static void main(String[] args) {

  try {

  Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces();

  while (networkInterfaces.hasMoreElements()) {

  NetworkInterface networkInterface = networkInterfaces.nextElement();

  Enumeration addresses = networkInterface.getInetAddresses();

  while (addresses.hasMoreElements()) {

  InetAddress address = addresses.nextElement();

  if (!address.isLoopbackAddress() && !address.isLinkLocalAddress() && address.isSiteLocalAddress()) {

  System.out.println("本机IP地址是:" + address.getHostAddress());

  }

  }

  }

  } catch (SocketException e) {

  e.printStackTrace();

  }

  }

  }

 

  上述代码将输出本机的所有IP地址,同时过滤掉了回环地址(loopback address)和本地链路地址(link-local address)。

  方法三:使用System类和网络接口

  还有一种获取本机IP地址的方法是使用System类和网络接口。通过调用System.getenv()方法获取操作系统的环境变量,然后根据操作系统的不同,找到对应的网络接口名称,并进一步获取IP地址。

  import java.net.InetAddress;

  import java.net.NetworkInterface;

  import java.net.SocketException;

  import java.util.Enumeration;

  import java.util.Map;

  public class GetIPAddress {

  public static void main(String[] args) {

  try {

  Map env = System.getenv();

  String os = System.getProperty("os.name").toLowerCase();

  String networkInterfaceName = null;

  if (os.contains("win")) {

  networkInterfaceName = env.get("COMPUTERNAME");

  } else if (os.contains("nix") || os.contains("nux") || os.contains("mac")) {

  networkInterfaceName = env.get("USER");

  }

  NetworkInterface networkInterface = NetworkInterface.getByName(networkInterfaceName);

  Enumeration addresses = networkInterface.getInetAddresses();

  while (addresses.hasMoreElements()) {

  InetAddress address = addresses.nextElement();

  if (!address.isLoopbackAddress() && !address.isLinkLocalAddress() && address.isSiteLocalAddress()) {

  System.out.println("本机IP地址是:" + address.getHostAddress());

  }

  }

  } catch (SocketException e) {

  e.printStackTrace();

  }

  }

  }

 

  上述代码根据操作系统类型获取对应的网络接口名称,并获取该网络接口的IPv4地址。

  这些就是在Java中获取本机IP地址的三种常用方法。你可以根据自己的需求选择合适的方法来获取本机的IP地址。

其他答案

  •   在Java中,获取本机的IP地址有多种方法。下面将介绍三种常用的方法。

      方法一:使用InetAddress类

      InetAddress类是Java提供的用于表示IP地址的类,通过其方法getLocalHost()可以获取本机的InetAddress对象,然后再使用getHostAddress()方法获取本机IP地址。

      import java.net.InetAddress;

      import java.net.UnknownHostException;

      public class GetIPAddress {

      public static void main(String[] args) {

      try {

      InetAddress localHost = InetAddress.getLocalHost();

      String ipAddress = localHost.getHostAddress();

      System.out.println("本机IP地址是:" + ipAddress);

      } catch (UnknownHostException e) {

      e.printStackTrace();

      }

      }

      }

      上述代码将输出本机的IP地址。

      方法二:使用NetworkInterface类

      NetworkInterface类提供了更灵活的方式来获取本机的IP地址。通过遍历所有的网络接口,可以获取每个网络接口对应的IP地址。

      import java.net.InetAddress;

      import java.net.NetworkInterface;

      import java.net.SocketException;

      import java.util.Enumeration;

      public class GetIPAddress {

      public static void main(String[] args) {

      try {

      Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces();

      while (networkInterfaces.hasMoreElements()) {

      NetworkInterface networkInterface = networkInterfaces.nextElement();

      Enumeration addresses = networkInterface.getInetAddresses();

      while (addresses.hasMoreElements()) {

      InetAddress address = addresses.nextElement();

      if (!address.isLoopbackAddress() && !address.isLinkLocalAddress() && address.isSiteLocalAddress()) {

      System.out.println("本机IP地址是:" + address.getHostAddress());

      }

      }

      }

      } catch (SocketException e) {

      e.printStackTrace();

      }

      }

      }

      上述代码将输出本机的所有IP地址,并过滤掉了回环地址(loopback address)和本地链路地址(link-local address)。

      方法三:使用System类和网络接口

      也可以使用System类和网络接口来获取本机IP地址。通过调用System.getenv()方法获取操作系统的环境变量,然后根据操作系统的不同,找到对应的网络接口名称,并进一步获取IP地址。

      import java.net.InetAddress;

      import java.net.NetworkInterface;

      import java.net.SocketException;

      import java.util.Enumeration;

      import java.util.Map;

      public class GetIPAddress {

      public static void main(String[] args) {

      try {

      Map env = System.getenv();

      String os = System.getProperty("os.name").toLowerCase();

      String networkInterfaceName = null;

      if (os.contains("win")) {

      networkInterfaceName = env.get("COMPUTERNAME");

      } else if (os.contains("nix") || os.contains("nux") || os.contains("mac")) {

      networkInterfaceName = env.get("USER");

      }

      NetworkInterface networkInterface = NetworkInterface.getByName(networkInterfaceName);

      Enumeration addresses = networkInterface.getInetAddresses();

      while (addresses.hasMoreElements()) {

      InetAddress address = addresses.nextElement();

      if (!address.isLoopbackAddress() && !address.isLinkLocalAddress() && address.isSiteLocalAddress()) {

      System.out.println("本机IP地址是:" + address.getHostAddress());

      }

      }

      } catch (SocketException e) {

      e.printStackTrace();

      }

      }

      }

      上述代码根据操作系统类型获取对应的网络接口名称,并获取该网络接口的IPv4地址。

      这些就是在Java中获取本机IP地址的三种常用方法。根据实际的需求,选择合适的方法来获取本机的IP地址。

  •   在Java中,获取本机的IP地址有多种方法。下面将介绍三种常用的方法。

      方法一:使用InetAddress类

      使用InetAddress类是最简单的方法来获取本机的IP地址。通过调用其中的getLocalHost()方法可以获取到本机对应的InetAddress对象,然后通过getHostAddress()方法获取IP地址的字符串表示。

      import java.net.InetAddress;

      import java.net.UnknownHostException;

      public class GetIPAddress {

      public static void main(String[] args) {

      try {

      InetAddress localhost = InetAddress.getLocalHost();

      String ipAddress = localhost.getHostAddress();

      System.out.println("本机IP地址是:" + ipAddress);

      } catch (UnknownHostException e) {

      e.printStackTrace();

      }

      }

      }

      上述代码将输出本机的IP地址。

      方法二:使用NetworkInterface类

      使用NetworkInterface类可以获取本机的所有网络接口信息,包括IP地址。通过遍历所有的网络接口,可以获取每个网络接口对应的IP地址。

      import java.net.InetAddress;

      import java.net.NetworkInterface;

      import java.net.SocketException;

      import java.util.Enumeration;

      public class GetIPAddress {

      public static void main(String[] args) {

      try {

      Enumeration interfaces = NetworkInterface.getNetworkInterfaces();

      while (interfaces.hasMoreElements()) {

      NetworkInterface networkInterface = interfaces.nextElement();

      Enumeration addresses = networkInterface.getInetAddresses();

      while (addresses.hasMoreElements()) {

      InetAddress address = addresses.nextElement();

      if (!address.isLoopbackAddress() && !address.isLinkLocalAddress() && address.isSiteLocalAddress()) {

      System.out.println("本机IP地址是:" + address.getHostAddress());

      }

      }

      }

      } catch (SocketException e) {

      e.printStackTrace();

      }

      }

      }

      上述代码将输出本机的所有IP地址,并且过滤掉了回环地址(loopback address)和本地链路地址(link-local address)。

      方法三:使用System类和网络接口

      另一种方法是使用System类和网络接口来获取本机的IP地址。根据不同的操作系统,可以通过System类的方法和环境变量获取网络接口的名称,进而获取IP地址。

      import java.net.InetAddress;

      import java.net.NetworkInterface;

      import java.net.SocketException;

      import java.util.Enumeration;

      import java.util.Map;

      public class GetIPAddress {

      public static void main(String[] args) {

      try {

      Map env = System.getenv();

      String os = System.getProperty("os.name").toLowerCase();

      String networkInterfaceName = null;

      if (os.contains("win")) {

      networkInterfaceName = env.get("COMPUTERNAME");

      } else if (os.contains("nix") || os.contains("nux") || os.contains("mac")) {

      networkInterfaceName = env.get("USER");

      }

      NetworkInterface networkInterface = NetworkInterface.getByName(networkInterfaceName);

      Enumeration addresses = networkInterface.getInetAddresses();

      while (addresses.hasMoreElements()) {

      InetAddress address = addresses.nextElement();

      if (!address.isLoopbackAddress() && !address.isLinkLocalAddress() && address.isSiteLocalAddress()) {

      System.out.println("本机IP地址是:" + address.getHostAddress());

      }

      }

      } catch (SocketException e) {

      e.printStackTrace();

      }

      }

      }

      上述代码根据操作系统类型获取对应的网络接口名称,并获取该网络接口的IPv4地址。

      这些就是在Java中获取本机IP地址的三种常用方法。根据需要选择合适的方法来获取本机的IP地址。