我想从一个套接字获取用户连接到的域(例如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,检查网址他们来自some.something.com,如果它是重定向到端口80.也许我是完全错误的,因为我是新来的Java网络,但请让我知道,如果你有任何提示,即使我有重写我的代码很好。
编辑2:我发现这是不可能的,因为目标应用程序在连接之前将域名解析为IP地址。感谢您的帮助虽然
基尔
你能举一个你期望的例子吗? – OscarRyz 2013-04-22 17:19:26
我不认为Apache ServerName指令正在做你认为的事情。它用于通过使用客户端发送的主机头标识虚拟主机定义。请参阅http://httpd.apache.org/docs/2.2/mod/core.html#servername – 2013-04-22 19:35:36