当前位置:首页 > Java

java如何获取地址

2026-03-22 13:56:08Java

获取本地IP地址

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

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

public class LocalIP {
    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地址,可以使用NetworkInterface类:

java如何获取地址

import java.net.*;
import java.util.Enumeration;

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

获取远程主机IP地址

要获取远程主机的IP地址,可以使用以下方法:

java如何获取地址

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

public class RemoteIP {
    public static void main(String[] args) {
        try {
            InetAddress remoteHost = InetAddress.getByName("www.example.com");
            System.out.println("IP of example.com: " + remoteHost.getHostAddress());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

获取客户端IP地址(Web应用)

在Web应用中,可以通过HttpServletRequest获取客户端IP地址:

import javax.servlet.http.HttpServletRequest;

public class ClientIP {
    public String getClientIP(HttpServletRequest request) {
        String ip = request.getHeader("X-Forwarded-For");
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        return ip;
    }
}

注意事项

IPv6地址可能会以十六进制格式显示,如果需要过滤IPv4地址,可以检查地址格式。某些网络配置可能导致返回回环地址(127.0.0.1)而不是实际IP地址。

在多网卡环境下,可能需要根据网络接口类型(如eth0、wlan0)来筛选特定接口的IP地址。获取公网IP通常需要访问外部服务,因为本地方法只能获取内网IP。

标签: 地址java
分享给朋友:

相关文章

java如何创建线程

java如何创建线程

创建线程的方法 在Java中,创建线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法: 继承Thread类 通过继承Thread类并重写run()方法可以创建线程。…

如何编译java文件

如何编译java文件

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

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

react如何获取页面地址

react如何获取页面地址

获取当前页面地址的方法 在React中获取当前页面的URL地址可以通过window.location对象或React Router(如果项目使用了路由库)实现。 使用window.location获…

php 实现java md5加密

php 实现java md5加密

PHP 实现 Java MD5 加密的兼容方法 Java 和 PHP 的 MD5 加密结果可能存在差异,主要因字符编码或输出格式不同。以下是确保两者结果一致的方法: 使用 hash 函数并处理编码…

java实现php

java实现php

Java 实现 PHP 功能的方法 在 Java 中实现 PHP 的功能通常涉及以下几个方面:字符串处理、Web 开发、数据库操作等。以下是几种常见需求的实现方法。 字符串处理 PHP 中的字符串处…