2012-11-26 53 views
1

当我访问该网站时http://myipaddress.com/what-is-my-ip-address/网站如何知道您的IP地址?

我检查了请求头信息。没有包括我的IP地址。那么Web服务器如何能够确定我的IP地址?我知道任何Web服务器都可以访问这些信息。但是如果它不在HTTP请求中,他们如何得到它?

+1

这个问题在这里得到了更全面的回答。 请参阅此链接[link] http://security.stackexchange.com/questions/16449/how-does-a-server-obtain-the-ip-address-of-a-user –

回答

4

您正在连接到服务器并向其发送HTTP请求。服务器回复一个页面。要做到这一点,它必须知道在哪里发送答复。该信息可以从套接字连接(即从低于HTTP的级别)自动获得,因此它不必在请求头中重复。

编辑: 如果您想了解更多有关Web服务器是如何做到这一点,看到accept function。当一个连接进入时,Web服务器调用accept,它会自动为其提供另一端的地址。

3

它位于到Web服务器的传入TCP/IP数据包中。 HTTP数据包在通过Internet发送时封装在TCP/IP数据包中(这看起来很奇怪,它们本身也被各种传输协议封装)。

传入的TCP/IP数据包将包含一些关于源的信息,包括source IP address以及source port number

+1

另外一点:您可能通过NAT防火墙/路由器(这将是您的ADSL或电缆盒)连接到互联网 - 如果是这种情况,IP地址将是**路由器**,而不是内部网络中的IP地址。 –

+0

@安德鲁:伟大的一点。 –

相关问题