【发布时间】:2019-08-28 14:41:02
【问题描述】:
我正在开发一个用 Node.js 编写的分布式应用程序,其中面向公众的服务器不时通过 HTTP 接收来自客户端的消息。收到后,消息将转换为以下 JSON 结构:
{
"message": {
// The actual message's content
},
"metadata": {
"client": {
"ip": "192.168.0.1",
"user": {
"token": {
"sub": "jane.doe@example.com"
}
}
}
}
}
由于每个连接都使用 OpenID Connect 进行身份验证,因此我将客户端发送的令牌添加到元数据部分,以及发送消息的客户端的 IP 地址。到目前为止,这很好用。
现在,其中一个不面向公众的服务器也能够发送消息,但它不会为此通过 HTTP 线路。相反,它通过消息队列发送消息(在我的例子中是 RabbitMQ,但这与这里无关)。面向公众的服务器将此队列用作消息的第二个传入通道。
我希望消息具有相同的结构,无论它们是通过 HTTP 从客户端接收还是通过队列从内部服务器接收。内部服务器有一个令牌,所以这不是问题。当然,它可以使用自己的 IP 地址作为源,但这没有太大意义。
我想要实现的是提供一个正式正确的 IP 地址,但基本上说 我是一个占位符,不要把我当真。
我看到在IPv6 中有来自地址块::/128 的地址::,维基百科称之为unspecified address。实际上,这听起来很像我正在寻找的东西,但我不需要它作为 IPv6,而是作为 IPv4。
现在的问题是:在 IPv4 中这个等价物是什么?是0.0.0.0吗?我是否可以将此地址用于我的目的,或者这在网络中是否具有不同的语义含义?
【问题讨论】:
标签: ip-address ipv6 ipv4 reserved-ip-addresses