This question is an extension of this question. While my answer did answer the question, there was one part that wasn't answered: how do I share a Wi-Fi connection via a Wi-Fi hotspot?
You can't "share" a Wi-Fi connection via a Wi-Fi hotspot.
What is misleading everybody is the inapropriate use of the technical term of sharing when the function we are talking of is a redistribution.
When 2 PC are connected on the same Wi-Fi hotspot they are truly sharing the same connection: they are using the same Wi-Fi channel, they are sharing the router IP public address.
When you start up
System Preferences > Sharing
you are not starting a sharing, but the redistribution of a main network access toward a secondary network access. On this secondary network access,
you are acting as an access router. You are distributing IP private
On your primary network access you have a public IP address, on your secondary network access, you have a private IP address, and you translate the traffic IP addresses from the
public side toward the private side and the other way around.
To be able to perform this redistribution of IP traffic coming
from your primary network access toward the same physical access
your OS should be able to present you this physical interface as 2
differents virtual interfaces, typically
MacOS X doesn't provide such a virtualisation function.
You can't redistribute your Ethernet connection toward your Ethernet
You can't redistribute your Wi-Fi connection toward your Wi-Fi connection.
Connectify (on Windows 7) is simply selling a standard function of Windows which permit to create 2 virtual Wi-Fi interfaces on top of one physical one (see: Wi-Fi hotspot for Windows 7). Then Windows redistribute the network access of the primary Wi-Fi toward the second one.
Mac OS X has an "internet sharing" feature in the Sharing panel in System Preferences.
As several people have already figured out in the question and answers here, it lets you share the connection from one hardware interface via any other hardware interface, but it can't use a single Wi-Fi interface as both the main connection and to re-share. (Windows 7 can do this, thanks to "network virtualization" features added by Microsoft, which essentially allows a single hardware Wi-Fi interface to respond to multiple SSIDs, and that's the underlying feature that Connectify leverages.)
One option that Mac OS X has that isn't quite an answer to this question, but is useful in some of the same situations, is that it can use Bluetooth to create a Personal Area Network (PAN), and its internet sharing feature can share the internet connection from Wi-Fi over the Bluetooth PAN, as documented here.
I've used this successfully to get an iPad to piggyback on a Macbook's Wi-Fi connection, so both were able to access the internet simultaneously in a hotel where I could only get one device on Wi-Fi. I was not able to get an iPhone 4S to connect to the PAN in the same situation, but supposedly it works for iPod Touches. I don't know if other computers (Mac OS X, Windows, Linux or otherwise) are able to join the PAN and use it as their internet connection.
Install Windows (using rEFIt if you're on a Mac). Install Connectify.
If you're a developer and use Linux, it should be possible to develop a new kernel module that will accomplish the "full duplex endpoint + repeater" functionality. For starters, target one specific device that you can get the wifi chipset datasheets for; you need bus architecure, register numbers, memory addresses, interrupt numbers, signal timings, radio boot routine, and the function list (synchronous and asynchronous).
I made a video on how to do this with a virtual windows PC running inside the Mac OS. The video is at https://www.youtube.com/watch?v=CoLxujScJSY
Things needed for my answer to work:
- any virtual box (free-vmware if you want to pay, parallels is good)
- a wireless network adapter
- windows iso file which you have to install on virtualbox