%ents; ]>
Server IP Check This specification defines a simple XMPP extension that enables a client to discover its external IP address. &LEGALNOTICE; xxxx ProtoXEP Standards Track Standards Council XMPP Core sic &stpeter; 0.0.2 2009-03-10 psa

Removed client inclusion of its IP address; added IPv6 example.

0.0.1 2009-03-10 psa

First draft.

There are times when a client might want or need to discover what its external Internet Protocol (IP) address is, e.g. when gathering transport candidates for &xep0065; or &xep0176;. One way to do so is for the client to ask the XMPP server to which it has connected. This simple specification defines such a method.

First the client sends an IQ-get request to its server.

]]>

The server then returns an IQ-result containing an <ip/> element whose XML character data specifies the client's IP address according to the server.

192.168.4.1 ]]>

The IP address could be IPv4 or IPv6.

2001:db8::9:1 ]]>

If an entity supports this protocol, it MUST report that by including a service discovery feature of "urn:xmpp:sic:0" in response to disco#info requests &NSNOTE;.

]]> ]]>

&rfc3920; specifies that client IP addresses shall not be made public. If a client requests its own IP address, that policy is not violated. However, a server MUST NOT return the IP address of another client (e.g., if a connected client sends a SIC request to the bare JID of another user); instead, it MUST return a &forbidden; error.

This document requires no interaction with &IANA;.

This specification defines the following XML namespace:

  • urn:xmpp:sic:0

Upon advancement of this specification from a status of Experimental to a status of Draft, the ®ISTRAR; shall add the foregoing namespace to the registry located at &NAMESPACES;, as described in Section 4 of &xep0053;.

&NSVER;
]]>

Thanks to Thiago Camargo and Diana Cionoiu for their prodding to define this extension.