在 Java 中获取“网络地址”通常有几种常见含义,下面按常见场景给你说明:
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(取决于系统配置)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
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.orghttps://ifconfig.me/iphttps://ip.cn/api/index?type=ipimport 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());
}
}
InetAddress address = InetAddress.getByName("www.baidu.com");
System.out.println(address.getHostAddress());
| 需求 | 方式 |
|---|---|
| 本机 IP | InetAddress.getLocalHost() |
| 所有网卡 IP | NetworkInterface |
| 公网 IP | 访问外部 API |
| 域名解析 | InetAddress.getByName() |
| URL 解析 | URL 类 |
如果你能具体说是 本机 / 公网 / 域名 / URL,我可以给你更精准的代码示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。