Java服务器-是否可以获取客户端用于连接的主机名?

Java服务器-是否可以获取客户端用于连接的主机名?,java,sockets,hostname,Java,Sockets,Hostname,当客户机连接到您的服务器时,是否可以确定他们用来连接到服务器的主机名?例如,如果entry1.domain.com和entry2.domain.com都指向同一个IP(您的服务器),并且客户端使用同一个IP连接到您的服务器,您是否能够区分用于进行套接字连接的主机名?不是纯TCP连接。您可以获取IP地址,但无法知道客户端用于获取该IP地址的主机名。通常,客户端会将所需的主机名发送到服务器。这就是HTTP所做的。您可以通过TCP发送所需的数据。i、 e.您可以发送所需的主机名 另一种方法是为同一主机

当客户机连接到您的服务器时,是否可以确定他们用来连接到服务器的主机名?例如,如果entry1.domain.com和entry2.domain.com都指向同一个IP(您的服务器),并且客户端使用同一个IP连接到您的服务器,您是否能够区分用于进行套接字连接的主机名?

不是纯TCP连接。您可以获取IP地址,但无法知道客户端用于获取该IP地址的主机名。

通常,客户端会将所需的主机名发送到服务器。这就是HTTP所做的。您可以通过TCP发送所需的数据。i、 e.您可以发送所需的主机名


另一种方法是为同一主机使用多个IP地址,并在Java中绑定到不同的IP地址。这样,您就可以知道所使用的地址是唯一的。

除非您的协议支持虚拟主机(例如HTTP),否则不可能知道您使用的是哪个地址。您是否使用HTTP 1.1?如果是这样,“客户端必须在所有HTTP/1.1请求消息中包含主机头字段。”这是一个TCP连接。