21xrx.com
2024-09-17 04:53:14 Tuesday
登录
文章检索 我的文章 写文章
如何在Java中获取请求的IP和端口信息
2023-06-15 19:57:01 深夜i     --     --
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()方法返回的是服务器的端口号。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复