繁体   English   中英

Ruby TCPSocket服务器-我可以告诉客户端连接的主机吗?

[英]Ruby TCPSocket Server - Can I tell to what host a client was connecting?

我有一个基于TCPSocket(非HTTP)的红宝石服务器。

我有2个不同的域,都用A记录指向我的服务器IP地址(同一个)。 因此,有些客户端连接到这些域之一。 是否可以判断客户端连接到哪个域?

我看到这在其他协议中是可行的,但是我不确定这是基于手动添加的标头还是真的从基本tcp / ip连接中提取的。 例如在PHP中有$_SERVER["HTTP_HOST"] ,它显示客户$_SERVER["HTTP_HOST"]在连接到哪个域。

在TCP套接字级别,唯一已知的是连接的源IP地址和目标IP地址(和端口)。 在这一层无法得知如何通过DNS解析IP地址。 即使HTTP在TCP之上工作,HTTP服务器也必须查看客户端的HTTP标头,以了解它们向哪个域发出请求。 (这就是HTTP_HOST值的填充方式。)

一种可能的解决方案是将服务器配置为具有其他IP地址。 这可以通过向NIC分配其他IP地址或添加其他NIC来实现。 然后让每个域使用不同的IP地址。 否则,这是不可能的,您可能希望在TCP之上考虑您的应用协议以传达此信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM