Patent ID: 8073959

Claim:
A hardware computer storage medium having computer-executable instructions for causing a computer to perform steps comprising: receiving data from a trusted online service to assist in determining whether a client computer is connected to a public network or a private network, the data comprising a network address of the client computer as seen by the trusted online service; sending a message to the trusted online service, the message comprising an envelope with a network address seen by the client computer; attempting to initiate a connection with the network address as seen by the client computer, and, if the connection is successful, determining that the client computer is connected to a public network; tracking by the trusted online service a number of computing devices connecting to a same local network as the client computer; determining by the trusted online service whether the number of computing devices connecting to the same local network as the client computer exceed a pre-established threshold for private networks, and, if the number of computing devices connecting to the same local network as the client computer exceed the pre-established threshold for private networks, determining that the client computer is connected to a public network; analyzing the data to determine whether the client computer is connected to a public network or a private network, analyzing comprising comparing the network address of the client computer as seen by the trusted online service with the network address of the client computer as seen by the client computer, if the network address of the client computer as seen by the trusted online service and the network address of the client computer as seen by the client computer are the same, determining that the client is connected to a public network; if the client computer is not determined to be connected to a public network, then determining that the client computer is connected to a private network; and automatically setting a local network type for a firewall of the client computer as connected to a public network, if the client computer is determined to be connected to a public network or as connected to a private network, if the client computer is not determined to be connected to a public network.