21xrx.com
2025-03-29 04:12:20 Saturday
文章检索 我的文章 写文章
如何在Java中获取请求的IP和端口信息
2023-06-15 19:57:01 深夜i     19     0
Java 网络编程 Socket

在进行网络编程时,经常需要获取请求方的IP和端口信息。Java提供了一些方法来获取这些信息,下面将介绍其中两种方法。

方法一:通过Socket获取IP和端口信息

通过Socket可以获取连接的IP和端口信息。具体实现如下:

Socket socket = new Socket("example.com", 80);
// 获取远程主机的IP和端口
String remoteIP = socket.getInetAddress().getHostAddress();
int remotePort = socket.getPort();
// 获取本地主机的IP和端口
String localIP = socket.getLocalAddress().getHostAddress();
int localPort = socket.getLocalPort();

其中,getInetAddress()方法返回的是Socket连接的远程主机的InetAddress对象,可以通过调用其getHostAddress()方法获取IP地址。getPort()方法返回的是Socket连接的远程主机的端口号。同理,getLocalAddress()方法返回的是Socket连接的本地主机的InetAddress对象,可以通过调用其getHostAddress()方法获取IP地址。getLocalPort()方法返回的是Socket连接本地主机的端口号。

方法二:通过HttpServletRequest获取IP和端口信息

当我们在进行Web编程时,可以通过HttpServletRequest对象获取请求的IP和端口信息。具体实现如下:

@RequestMapping("/test")
public String test(HttpServletRequest request) {
  // 获取请求的IP和端口
  String remoteIP = request.getRemoteAddr();
  int remotePort = request.getRemotePort();
  // 获取本地主机的IP和端口
  String localIP = request.getLocalAddr();
  int localPort = request.getLocalPort();
  
  ...
}

其中,HttpServletRequest对象的getRemoteAddr()方法返回的是请求方的IP地址,getRemotePort()方法返回的是请求方连接的端口号。getLocalAddr()方法返回的是服务器的IP地址,getLocalPort()方法返回的是服务器的端口号。

  
  

评论区