当前位置:首页 > Java

java如何查询ip

2026-03-25 05:01:09Java

查询本机IP地址

使用InetAddress类可以获取本机的IP地址。以下是一个简单的示例代码:

java如何查询ip

import java.net.InetAddress;
import java.net.UnknownHostException;

public class GetLocalIP {
    public static void main(String[] args) {
        try {
            InetAddress localHost = InetAddress.getLocalHost();
            System.out.println("Local IP Address: " + localHost.getHostAddress());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

查询公网IP地址

查询公网IP需要访问外部服务。可以使用HTTP请求获取公网IP:

java如何查询ip

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class GetPublicIP {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://api.ipify.org");
            BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
            String publicIP = reader.readLine();
            System.out.println("Public IP Address: " + publicIP);
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

获取所有网络接口的IP地址

如果需要获取所有网络接口的IP地址,可以使用NetworkInterface类:

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

public class GetAllIPs {
    public static void main(String[] args) {
        try {
            Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
            while (interfaces.hasMoreElements()) {
                NetworkInterface networkInterface = interfaces.nextElement();
                Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
                while (addresses.hasMoreElements()) {
                    InetAddress address = addresses.nextElement();
                    System.out.println("Interface: " + networkInterface.getName() + 
                                      ", IP: " + address.getHostAddress());
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
    }
}

注意事项

  • 查询公网IP需要网络连接。
  • 某些网络环境可能限制对外部服务的访问。
  • 获取所有网络接口IP时,可能会包含IPv6地址和回环地址(如127.0.0.1)。

标签: javaip
分享给朋友:

相关文章

如何安装java环境

如何安装java环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行安…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…

java如何避免死锁

java如何避免死锁

避免死锁的方法 固定顺序获取锁 确保所有线程按照相同的顺序获取多个锁。例如,若需要获取锁A和锁B,所有线程必须先获取A再获取B,避免交叉依赖导致的死锁。这种方式破坏了“循环等待”条件。 使用锁超时机…

如何系统的学习java

如何系统的学习java

学习Java的基础知识 Java的基础知识包括语法、数据类型、变量、运算符、控制流语句等。可以通过官方文档或入门书籍如《Java核心技术》来掌握这些内容。编写简单的程序练习基础语法,例如打印“Hell…

如何学好java编程

如何学好java编程

理解基础概念 掌握Java的基础语法是学习的起点。变量、数据类型、运算符、控制结构(如循环和条件语句)是核心内容。面向对象编程(OOP)的概念(类、对象、继承、多态、封装)是Java的核心,需深入理解…