Java程序通常需要获取服务器IP地址来确保应用程序能够准确地与之通信,这篇文章将为您提供Java获取服务器IP的几种方法。我们将从旧的Java版本开始,向您介绍一些基于网络的技术,并介绍在旧版本和新版本的Java编程环境中如何实现。
一、使用InetAddress类获取服务器IP
Java SE提供了InetAddress类,该类表示互联网协议(IP)地址。InetAddress类提供了静态方法getByName(),该方法接受主机名或IP地址字符串,并返回InetAddress对象,在InetAddress对象中包含与指定主机名或IP地址相对应的IP地址。
下面使用InetAddress的getLocalHost()方法,演示如何获取当前服务器的IP地址:
import java.net.*; public class GetServerIP { public static void main(String[] args) throws UnknownHostException { InetAddress ip = InetAddress.getLocalHost(); System.out.println(ip.getHostAddress()); } }
该程序将会输出当前服务器的IP地址。
二、使用Socket类获取服务器IP
在Java中,Socket类用于建立连接到网络应用程序,可以通过Socket类获取服务器的IP地址和端口号。Socket类的构造函数包含两个参数:服务器主机名和端口号,在创建Socket对象时这两个参数是必需的。
下面是一个简单的Java程序,它连接到一个远程服务器,并获取该服务器的IP地址和端口号:
import java.io.IOException; import java.net.*; public class GetServerIPUsingSocket { public static void main(String[] args) throws IOException { InetAddress address = InetAddress.getByName("www.baidu.com"); Socket socket = new Socket(address, 80); System.out.println("Connected to server!"); System.out.println("Server IP address: " + socket.getInetAddress()); System.out.println("Server port number: " + socket.getPort()); socket.close(); } }
该程序将会连接到百度服务器,并输出服务器的IP地址和端口号。
三、使用NetworkInterface类获取本地IP
如果在服务器上部署的Java应用程序需要获取本地IP地址而不是服务器IP地址,可以使用NetworkInterface类。 NetworkInterface类表示网络接口,可以用于查询相应的IP地址和硬件地址。
下面是一个简单的Java程序,演示如何使用NetworkInterface类获取本地IP地址:
import java.net.*; import java.util.*; public class GetLocalIP { public static void main(String[] args) throws SocketException { Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); while (interfaces.hasMoreElements()) { NetworkInterface currentInterface = interfaces.nextElement(); if (!currentInterface.isUp() || currentInterface.isLoopback() || currentInterface.isVirtual()) { continue;} Enumeration addresses = currentInterface.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress currentAddress = addresses.nextElement(); if (currentAddress.isLoopbackAddress() || !currentAddress.getHostAddress().contains(":")) { System.out.println(currentAddress.getHostAddress()); } } } } }
该程序将会输出本地IP地址,如果本地IP地址是127.0.0.1,将会被忽略。
四、小结
以上就是Java获取服务器IP的几种方法,从简单的InetAddress类到使用Socket类,再到NetworkInterface类,您可以根据实际情况使用任一种方法来获取所需的IP地址。
代码示例:https://github.com/lulu131206/GetServerIPDemo
原创文章,作者:JZDA,如若转载,请注明出处:https://www.506064.com/n/143717.html