Java获取本机IP地址的方法(内网、公网)
在Java中获取本机的内网和公网IP地址可以通过以下方法实现:
- 获取内网IP地址:
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressExample {
public static void main(String[] args) {
try {
InetAddress inetAddress = InetAddress.getLocalHost();
String ipAddress = inetAddress.getHostAddress();
System.out.println("内网IP地址: " + ipAddress);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
- 获取公网IP地址:
由于公网IP是由网络服务提供商(ISP)分配给你的路由器,然后路由器再分配给你的设备,因此你需要通过外部服务来获取你的公网IP。可以使用第三方服务如 http://checkip.amazonaws.com 或者写一个简单的HTTP请求来获取公网IP。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class PublicIPAddressExample {
public static void main(String[] args) {
try {
URL url = new URL("http://checkip.amazonaws.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 读取服务器响应, 它将是你的公网IP地址
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String ipAddress = in.readLine();
System.out.println("公网IP地址: " + ipAddress);
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意:这个服务是AWS提供的,如果不可用,可以尝试其他服务。此外,这种方法获取的公网IP可能会有误,因为有些路由器或者网络设置不会将内网IP暴露给这个服务。
评论已关闭