2

我正在开发一个可以响应用户聊天消息的应用程序。我需要知道聊天消息发送者的 IP 地址。我在谷歌应用引擎上做我的应用程序,并使用 XMPP 协议进行聊天。如何使用 XMPP 协议检测聊天消息发送者的 IP 地址?

4

2 回答 2

2

只有 XMPP 服务器知道 IP 地址。如果你控制 XMPP 服务器,你可以编写一个扩展,以某种方式在消息中包含 IP 地址(或检查一个是否已经可用)。

于 2013-01-24T07:55:03.110 回答
0

如何从 XMPP 绑定消息中获取我的公共 IP?

http://xmpp.org/extensions/xep-0279.html


首先,客户端向其服务器发送一个 IQ-get 请求。

示例 1.客户端向服务器请求其 IP 地址

<iq from='romeo@montague.lit/orchard'
    id='ik2s7159'
    type='get'>
  <address xmlns='urn:xmpp:sic:1'/>
</iq>

然后,服务器返回一个 IQ 结果,其中包含一个元素,该元素包含一个指定客户端外部 IP 地址的元素,以及一个可选的指定客户端外部端口的元素。

示例 2.服务器返回 IP 地址和端口

<iq id='ik2s7159'
    to='romeo@montague.lit/orchard'
    type='result'>
  <address xmlns='urn:xmpp:sic:1'>
    <ip>192.168.4.1</ip>
    <port>12345</port>
</iq>

请注意,IP 地址可以是 IPv4 或 IPv6。

示例 3.服务器返回 IPv6 地址

<iq id='ik2s7159'
    to='romeo@montague.lit/orchard'
    type='result'>
  <address xmlns='urn:xmpp:sic:1'>
    <ip>2001:db8::9:1</ip>
    <port>12345</port>
  </address>
</iq>
于 2013-07-06T15:40:59.307 回答