MarcoPolo uses fuzzy logic and rule-based matching to make educated guesses as to your current location, and automatically switches to the correct network location. It can match on discoverable Bluetooth devices, attached FireWire devices, assigned IP addresses, attached USB devices and visible WiFi networks, and can trigger various actions such as executing or opening a file, changing your default printer, running a shell script, or toggling your WiFi or Bluetooth.