当前位置:首页 > Java

java如何获取ip

2026-04-09 03:39:08Java

获取本地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地址(Web应用)

在Web应用中,可以通过 HttpServletRequest 对象获取客户端的IP地址。以下是一个Servlet示例:

java如何获取ip

import javax.servlet.http.HttpServletRequest;

public class GetClientIP {
    public static String getClientIp(HttpServletRequest request) {
        String ipAddress = request.getHeader("X-Forwarded-For");
        if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getRemoteAddr();
        }
        return ipAddress;
    }
}

获取公网IP地址

如果需要获取公网IP地址,可以通过调用外部API实现。以下是一个使用 HttpURLConnection 调用API的示例:

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

public class GetPublicIP {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://api.ipify.org?format=text");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String publicIp = reader.readLine();
            System.out.println("Public IP Address: " + publicIp);
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意事项

  • 本地IP地址可能返回 127.0.0.1(回环地址),尤其是在某些网络配置下。
  • Web应用中获取客户端IP时,需注意代理服务器可能修改请求头,优先检查 X-Forwarded-For 等头信息。
  • 调用外部API获取公网IP时,需确保网络连接正常,且API服务可用。

标签: javaip
分享给朋友:

相关文章

java如何使用

java如何使用

Java 基本使用方法 Java 是一种广泛使用的编程语言,适用于开发各种类型的应用程序。以下是 Java 的基本使用方法,包括环境配置、语法基础和常用操作。 安装 Java 开发环境 下载并安装…

java如何调用接口

java如何调用接口

调用接口的基本方法 在Java中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void d…

如何编译java文件

如何编译java文件

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证。若未安装,需从Oracle或Open…

java如何获取当前时间

java如何获取当前时间

获取当前时间的方法 在Java中,可以通过多种方式获取当前时间。以下是几种常见的方法: 使用 java.util.Date Date currentDate = new Date(); Syste…

java如何导入jar包

java如何导入jar包

在Eclipse中导入JAR包 右键项目 -> 选择"Properties" -> 左侧导航选择"Java Build Path" -> 切换到"Libraries"标签 ->…

如何成为java架构师

如何成为java架构师

掌握扎实的Java基础 深入理解Java核心知识,包括多线程、集合框架、JVM原理、设计模式等。熟悉Java生态中的常用框架如Spring、MyBatis、Hibernate等,并能分析其源码实现。…