我正在開發一個應用程序,可以響應用戶的聊天消息。我需要知道聊天消息發件人的IP地址。我正在Google app引擎上開發我的應用程序,並使用XMPP協議進行聊天。如何使用XMPP協議檢測聊天消息發件人的IP地址?如何在Google App Engine中使用XMPP協議獲取聊天消息發件人的IP地址?
回答
只有XMPP服務器知道IP地址。如果您控制XMPP服務器,則可以編寫擴展名,以便以某種方式在消息中包含IP地址(或檢查是否已有可用的IP地址)。
你可以在技術上做到這一點,但請不要除非你擁有所涉及的所有機器,網絡和用戶。人們對他們的IP地址泄漏非常不滿,如果客戶端和服務器之間存在NAT,它甚至不會按照您的預期工作。 –
How to get my public IP from XMPP bind message?
http://xmpp.org/extensions/xep-0279.html
首先客戶端發送一個IQ-get請求其服務器。
實施例1客戶端從服務器
<iq from='[email protected]/orchard'
id='ik2s7159'
type='get'>
<address xmlns='urn:xmpp:sic:1'/>
</iq>
然後,服務器返回一個包含含有元素指定客戶端的外部IP地址的元素和,任選地,元件的IQ結果請求其IP地址指定客戶端的外部端口。
例2服務器返回的IP地址和端口
<iq id='ik2s7159'
to='[email protected]/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='[email protected]/orchard'
type='result'>
<address xmlns='urn:xmpp:sic:1'>
<ip>2001:db8::9:1</ip>
<port>12345</port>
</address>
</iq>
歡迎來到Stack Overflow。請總結你答案中的鏈接;這樣,如果鏈接失效,答案不會完全無用。 – michaelb958
- 1. Facebook聊天XMPP協議
- 2. Google App Engine Xmpp聊天如何管理用戶的狀態?
- 3. 聊天(XMPP)消息平臺
- 4. 在Google App Engine + Python中獲取IP地址
- 5. 在GWT和Google App Engine中獲取客戶端IP地址
- 6. 羣聊與Google App Engine的XMPP
- 7. Facebook XMPP聊天API發送消息PHP
- 8. Facebook xmpp聊天消息
- 9. 使用xmpp發送聊天到會議
- 10. 確定聊天人的IP地址
- 11. Google App Engine服務器IP地址
- 12. Google App Engine - IP地址列表?
- 13. XMPP:消息協議格式
- 14. 如何從XMPP獲取舊消息(聊天記錄)
- 15. 如何獲取發送給Hubot的XMPP聊天消息的時間戳?
- 16. 用於聊天應用程序的Google App Engine和Android中的XMPP
- 17. 未能在FCM發送使用XMPP協議的上游消息
- 18. 是否可以使用XMPP和Google App Engine創建簡單的聊天工具?
- 19. 使用Google App Engine(Python)發送聊天邀請到GTalk?
- 20. 如何在春季集成中獲取發件人IP地址?
- 21. 在Google App Engine上使用XMPP的實時多人遊戲?
- 22. 在後臺獲取聊天消息
- 23. 如何使用samck API接收聊天室消息,XMPP
- 24. 如何發送XMPP聊天消息通知到Android以及IOS
- 25. 使用Google App Engine的xmpp客戶端
- 26. 哪一個更適合Google App Engine中聊天系統的XMPP或Channel API
- 27. 使用重疊的IO獲取發件人的IP地址
- 28. XMPP聊天:使用xmppPy的名單訪問聯繫人的狀態消息
- 29. 如何使用PROXY協議獲取客戶端的真實IP地址?
- 30. QUdpSocket。如何獲取發件人的IP地址?
如果你控制客戶端/應用程序和信任是不是一個問題,使其探測自己的IP並把它作爲消息的一部分。 – tesdal