编程语言
首页 > 编程语言> > java-获取传入连接的域名

java-获取传入连接的域名

作者:互联网

我在互联网上找不到有关此主题的任何信息,并在这里询问.例如,我有一个服务器,其IP地址为1.1.1.1和2.2.2.2,两个域名指向它,one.example.com和example2.net,并在端口1234上监听侦听传入的连接.

例如:

C/C++:

listenfd=socket(AF_INET, SOCK_STREAM, 0);
bind(...);
listen(...);
while(...) accept(...);

或Java:

ServerSocket socket = new ServerSocket(1234);
while(...) {
    Socket connectionSocket = welcomeSocket.accept();
    ...
}

当客户端接受我的套接字时,我需要知道客户端使用哪个域名/ IP进行连接.它可能是one.example.com或example2.net和/或IP 1.1.1.1或2.2.2.2(如果仅使用IP连接).

Apache以某种方式确定了传入请求的IP /域,我需要在纯套接字代码中执行此操作. C(主要)或Java(或任何其他)被接受,我需要知道其机理.

解决方法:

IP存储在IP packet header内部,您可以从那里读取它.为了获得主机,您可能必须通过发送request来询问DNS服务器(或使用为您执行此操作的function).您甚至可以在this site上找到有关这两个问题的示例

标签:sockets,java,c-4,domain-name
来源: https://codeday.me/bug/20191122/2060124.html