How can I find out what Wifi networks my iPhone knows about?

Solution 1:

Where there's a will there's a way ;)

From a stock iPhone this is not possible from the settings. The information that you want is stored in the iPhone's keychain. If you have access to the iPhone SDK you can start messing around if you like, but I will leave it at that since that would be a StackOverflow answer.

Exact location is: /private/var/Keychains/keychain-2.db

Solution 2:

I think the only way is to actually be in range of the network that you want to get rid of. You can't actually see what networks you have stored, not that I know of, but if you want to get rid of a network.

Settings > Wifi >

Then select the blue arrow on the right of the network that you are connected to and click "Forget this Network"

Solution 3:

If you are not interested to find out the algorhythm used to pick the network but only want to view the list of remembered networks, there are at least three Cydia apps: "wifi passwords", "networkknowledge" and "networklist".

(The first has the advantage that it is a standalone app and does not install a mobilesubstrate library, while the others have the advantage that display the information right where you expect it in the wifi settings but at the cost of bulking the device with yet another mobilesubstrate library)

Bonus, this will also show the stored passwords in cleartext!
You will need to jailbreak the device first though, since access to the needed information require root privileges.