java获取服务器ip和端口号,Java获取服务器IP地址及端口号详解与实例分析
- 综合资讯
- 2024-10-23 01:48:04
- 2

Java获取服务器IP和端口号,主要涉及使用InetAddress类和ServerSocket类。InetAddress可用于获取服务器的IP地址,而ServerSoc...
Java获取服务器IP和端口号,主要涉及使用InetAddress
类和ServerSocket
类。InetAddress
可用于获取服务器的IP地址,而ServerSocket
的getInetAddress()
方法可获取绑定的IP地址,getLocalPort()
方法则用于获取端口号。以下是一段示例代码,展示如何获取并打印服务器的IP地址和端口号。
在Java程序开发过程中,经常需要获取服务器的IP地址和端口号,以便进行网络通信,本文将详细介绍Java获取服务器IP地址及端口号的方法,并附带实例分析,帮助读者更好地理解和应用。
Java获取服务器IP地址和端口号的方法
1、通过InetAddress类获取
InetAddress类是Java中用于处理IP地址和主机名的基础类,通过InetAddress类,我们可以轻松获取服务器的IP地址和端口号。
(1)获取IP地址
String hostname = "服务器域名"; InetAddress address = InetAddress.getByName(hostname); String ipAddress = address.getHostAddress();
(2)获取端口号
Socket socket = new Socket(address, 80); // 假设端口号为80 int port = socket.getPort(); socket.close();
2、通过InetSocketAddress类获取
InetSocketAddress类是InetAddress类的子类,用于表示IP地址和端口号的组合,通过InetSocketAddress类,我们可以更方便地获取服务器的IP地址和端口号。
String hostname = "服务器域名"; int port = 80; // 假设端口号为80 InetSocketAddress socketAddress = new InetSocketAddress(hostname, port); String ipAddress = socketAddress.getHostString(); int portNumber = socketAddress.getPort();
3、通过NetworkInterface类获取
NetworkInterface类表示网络接口,通过该类可以获取本机的IP地址,对于服务器,我们可以通过获取网络接口并获取其IP地址来获取服务器的IP地址。
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); while (interfaces.hasMoreElements()) { NetworkInterface networkInterface = interfaces.nextElement(); Enumeration<InetAddress> addresses = networkInterface.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress address = addresses.nextElement(); if (!address.isLoopbackAddress() && address.getHostAddress().contains(".")) { String ipAddress = address.getHostAddress(); // 获取IP地址 // ... } } }
实例分析
以下是一个简单的Java程序,用于获取服务器的IP地址和端口号:
import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.NetworkInterface; import java.net.Socket; import java.util.Enumeration; public class ServerInfo { public static void main(String[] args) { String hostname = "服务器域名"; int port = 80; // 通过InetAddress类获取 try { InetAddress address = InetAddress.getByName(hostname); String ipAddress = address.getHostAddress(); System.out.println("通过InetAddress获取IP地址:" + ipAddress); // 通过Socket获取端口号 Socket socket = new Socket(address, port); int portNumber = socket.getPort(); socket.close(); System.out.println("通过Socket获取端口号:" + portNumber); } catch (Exception e) { e.printStackTrace(); } // 通过InetSocketAddress类获取 try { InetSocketAddress socketAddress = new InetSocketAddress(hostname, port); String ipAddress = socketAddress.getHostString(); int portNumber = socketAddress.getPort(); System.out.println("通过InetSocketAddress获取IP地址:" + ipAddress); System.out.println("通过InetSocketAddress获取端口号:" + portNumber); } catch (Exception e) { e.printStackTrace(); } // 通过NetworkInterface类获取 try { Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); while (interfaces.hasMoreElements()) { NetworkInterface networkInterface = interfaces.nextElement(); Enumeration<InetAddress> addresses = networkInterface.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress address = addresses.nextElement(); if (!address.isLoopbackAddress() && address.getHostAddress().contains(".")) { String ipAddress = address.getHostAddress(); System.out.println("通过NetworkInterface获取IP地址:" + ipAddress); // 获取端口号 // ... } } } } catch (Exception e) { e.printStackTrace(); } } }
本文详细介绍了Java获取服务器IP地址及端口号的方法,包括通过InetAddress、InetSocketAddress和NetworkInterface类获取,通过实例分析,读者可以更好地理解和应用这些方法,在实际开发中,根据需求选择合适的方法,以便实现网络通信。
本文由智淘云于2024-10-23发表在智淘云,如有疑问,请联系我们。
本文链接:https://www.zhitaoyun.cn/267115.html
本文链接:https://www.zhitaoyun.cn/267115.html
发表评论