22. A method comprising: announcing, by a networked device residing in a private network of Internet, a networked service to a discovery service; enable performing, by the networked device, the discovery service for the private network; executing, by a client device residing in a same private network of the Internet as the networked device, a sandboxed program in a security sandbox; and automatically instantiating, by the client device, a connection between the sandboxed program and at least one of the networked device and the networked service based on: translating, through a NAT straddling both the same private network and a public network of the Internet, a private address of an announce message related to the announcement of the networked service to a public address thereof including a public IP address, addressing, from a private address of the sandboxed program, a discovery message to the discovery service, translating, through the NAT, the private address of the sandboxed program to a public address thereof including a public IP address when the discovery message transits the NAT, performing, through the discovery service, a lookup based on the public IP address of the sandboxed program to determine at least one device having a same public IP address to determine that the sandboxed program and the at least one of the networked device and the networked service reside in the same private network, and in accordance with the determination that the sandboxed program and the at least one of the networked device and the networked service reside in the same private network, responding, through the discovery service, with service information for the at least one of the networked device and the networked service.
22. A method comprising: announcing, by a networked device residing in a private network of Internet, a networked service to a discovery service; enable performing, by the networked device, the discovery service for the private network; executing, by a client device residing in a same private network of the Internet as the networked device, a sandboxed program in a security sandbox; and automatically instantiating, by the client device, a connection between the sandboxed program and at least one of the networked device and the networked service based on: translating, through a NAT straddling both the same private network and a public network of the Internet, a private address of an announce message related to the announcement of the networked service to a public address thereof including a public IP address, addressing, from a private address of the sandboxed program, a discovery message to the discovery service, translating, through the NAT, the private address of the sandboxed program to a public address thereof including a public IP address when the discovery message transits the NAT, performing, through the discovery service, a lookup based on the public IP address of the sandboxed program to determine at least one device having a same public IP address to determine that the sandboxed program and the at least one of the networked device and the networked service reside in the same private network, and in accordance with the determination that the sandboxed program and the at least one of the networked device and the networked service reside in the same private network, responding, through the discovery service, with service information for the at least one of the networked device and the networked service. 23. The method of claim 22 , further comprising: querying, by a discovery agent running with the sandboxed program, the discovery service for the service information associated with the at least one of the networked device and the networked service, wherein the service information comprises at least one of a GUID, an alphanumeric name, a public address pair, and a private address pair.