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