温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java怎么获取网络地址

发布时间:2026-10-24 07:56:15 来源:亿速云 阅读:97 作者:小樊 栏目:编程语言

在 Java 中获取“网络地址”通常有几种常见含义,下面按常见场景给你说明:


一、获取本机 IP 地址(局域网/本机)

1️⃣ 使用 InetAddress(推荐)

import java.net.InetAddress;

public class Main {
    public static void main(String[] args) throws Exception {
        InetAddress localHost = InetAddress.getLocalHost();
        System.out.println("主机名: " + localHost.getHostName());
        System.out.println("IP地址: " + localHost.getHostAddress());
    }
}

⚠️ 注意:

  • 可能返回 127.0.0.1(取决于系统配置)

2️⃣ 获取所有网卡 IP(更可靠)

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

public class Main {
    public static void main(String[] args) throws Exception {
        Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
        while (interfaces.hasMoreElements()) {
            NetworkInterface ni = interfaces.nextElement();
            Enumeration<InetAddress> addresses = ni.getInetAddresses();
            while (addresses.hasMoreElements()) {
                InetAddress addr = addresses.nextElement();
                if (!addr.isLoopbackAddress() && addr instanceof Inet4Address) {
                    System.out.println(ni.getName() + " -> " + addr.getHostAddress());
                }
            }
        }
    }
}

✅ 适合获取真实局域网 IP


二、获取公网 IP(外网地址)

Java 本身不能直接获取公网 IP,需要访问外部服务:

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

public class Main {
    public static void main(String[] args) throws Exception {
        URL url = new URL("https://api.ipify.org");
        BufferedReader br = new BufferedReader(
                new InputStreamReader(url.openStream()));
        System.out.println("公网IP: " + br.readLine());
    }
}

常用公网 IP 接口:

  • https://api.ipify.org
  • https://ifconfig.me/ip
  • https://ip.cn/api/index?type=ip

三、URL / 网络地址解析

import java.net.URL;

public class Main {
    public static void main(String[] args) throws Exception {
        URL url = new URL("https://www.example.com:8080/path?a=1");
        System.out.println("协议: " + url.getProtocol());
        System.out.println("主机: " + url.getHost());
        System.out.println("端口: " + url.getPort());
        System.out.println("路径: " + url.getPath());
    }
}

四、获取远程服务器 IP

InetAddress address = InetAddress.getByName("www.baidu.com");
System.out.println(address.getHostAddress());

总结

需求 方式
本机 IP InetAddress.getLocalHost()
所有网卡 IP NetworkInterface
公网 IP 访问外部 API
域名解析 InetAddress.getByName()
URL 解析 URL 类

如果你能具体说是 本机 / 公网 / 域名 / URL,我可以给你更精准的代码示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手