Script to create an ad-hoc network to sync iPhone

Aug 21, '08 07:30:00AM

Contributed by: channui

Due to the lack of an equivalent to Palm's sync conduits, many iPhone applications are syncing to your computer over a local wireless network. When I tote my laptop around with me, I often don't have a network available to sync with, or I don't trust the networks that are available. Here's an AppleScript I use to set up my laptop to talk with my phone when I'm not at home. It creates an ad-hoc network with 128-bit WEP encryption.

Optionally you can make a network location (System Preferences > Network) with the same name as the network you're creating. In addition to allowing me to configure my other network connections, this lets me easily revert to my normal networks by selecting my default location when I'm done. The iPhone will remember the password after the first time you join the network, although you may have to select it if there are multiple networks available.

If you get an error message that the network already exists, check to make sure your phone isn't keeping that ad-hoc network alive. Just selecting another network should do it.


-- This script creates an ad-hoc network with a password and changes your
-- network location.
--
-- I just added network passwords and network locations to a script which
-- comes from StefanK:
--    http://bbs.macscripter.net/viewtopic.php?pid=99243

-- Set NetworkName to be the name of the wireless network you wish
-- to create.  This will also attempt to set the network location
-- to that name as well.
-- Set NetworkPassword to be your wireless network password.  It MUST BE
-- 13 characters long (or 26 hex digits).

property NetworkName : "MyAdHocNetwork"
property NetworkPassword : "thirteenchars"


property CreateMenuName : "Create Network…"

try
	do shell script "/usr/sbin/scselect " & NetworkName
	delay 2
end try

tell application "System Events"
	tell process "SystemUIServer"
		tell menu bar 1
			set menu_extras to value of attribute "AXDescription" of menu bar items
			repeat with the_menu from 1 to the count of menu_extras
				if item the_menu of menu_extras is "Airport Menu Extra" then exit repeat
			end repeat
			tell menu bar item the_menu
				perform action "AXPress"
				delay 0.2
				perform action "AXPress" of menu item CreateMenuName of menu 1
			end tell
		end tell
		repeat until exists window 1
			delay 0.5
		end repeat
		tell window 1
			keystroke NetworkName
			click checkbox 1
			keystroke NetworkPassword
			keystroke tab
			keystroke NetworkPassword
			click pop up button 2
			click menu item 2 of menu 1 of pop up button 2
			delay 0.5
			
			click button 1
		end tell
	end tell
end tell

Comments (13)


Mac OS X Hints
http://hints.macworld.com/article.php?story=2008081808383349