我正在尝试从套接字获取用户连接到的域(例如 test.somesite.com),这可能吗?我想要这样做的原因是根据用户的来源重定向用户。我从另一个线程中运行 serverSocket.accept() 获取套接字
我努力了:
clientSocket.getLocalAddress().getHostAddress();
clientSocket.getHostAddress().toString();
他们都只是打印我自己的本地/内部 IP 地址。我怎样才能得到他们从中获得的域?
编辑:我认为这是可能的,因为例如,在 Apache Web 服务器中,您可以在 httpd.conf 文件中执行此操作:
<VirtualHost *:80>
ServerName something.something.com
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
这将在端口 80 上侦听,检查它们来自的 url 是否是 something.something.com,如果是,它将重定向到端口 80。也许我完全错了,因为我是 Java 网络的新手,但请让我知道您是否有任何提示,即使我必须重写我的代码也可以。
编辑 2:我发现这是不可能的,因为目标应用程序在连接之前将域名解析为 IP 地址。感谢您的所有帮助
凯尔