Simple Script for Ad-Hoc SOCKS Proxy iPhone Tethering

Discussion in 'Mac Programming' started by adrian876, Feb 2, 2012.

  1. adrian876 macrumors newbie

    Jan 30, 2012
    Hey everyone!

    I made a simple Mac Applescript application to create and set up an Ad-Hoc SOCKS Proxy network to tether your iPhone. It's really basic and I've included the source code. Feel free to check it out, make modifications, comment, ask questions, or correct any bugs. Here's the code:

    --modify the following lines and script as much as needed, NetworkPassword must be at least 10 digits.
    --this is the name of the network
    property NetworkName : "Tethering"
    --this is the WEP password for the network
    property NetworkPassword : "1234567890"
    --this is the SOCKS Proxy Server IP Address
    property SocksIP : ""
    --this is the SOCKS Proxy Server Port
    property SocksPort : "20000"
    -- create ad-hoc network
    tell application "System Events"
    	tell process "SystemUIServer"
    		tell menu bar 1
    			-- find Wi-Fi Menu
    			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 contains "Wi-Fi" then exit repeat
    			end repeat
    			-- turn on Airport then create ad-hoc network
    			tell menu bar item the_menu
    				perform action "AXPress"
    				-- if Airport is off, turn it on
    				if title of menu item 2 of menu 1 is "Turn Wi-Fi On" then
    					perform action "AXPress" of menu item "Turn Wi-Fi On" of menu 1
    					perform action "AXPress"
    				end if
    				--if Airport is on, create the ad-hoc network
    				perform action "AXPress" of menu item "Create Network…" of menu 1
    			end tell
    		end tell
    		-- Enter information into Create Network dialog box
    		tell window 1
    			-- require password
    			click pop up button 2
    			-- set to 40-bit WEP
    			click menu item "40-Bit WEP" of menu 1 of pop up button 2
    			--change channel
    			click pop up button 1
    			--set to channel 6
    			click menu item "6" of menu 1 of pop up button 1
    			--fill in information
    			set value of text field 2 to NetworkPassword
    			set value of text field 3 to NetworkPassword
    			--set name of the network
    			set value of text field 1 to NetworkName
    			--the okay button doesn't show up unless you delete a character and re-enter it
    			click text field 3
    			keystroke (ASCII character 8)
    			keystroke "0"
    			-- click OK
    			click button 1
    				repeat while value of static text 3 is "Creating network…"
    					delay 0.5
    				end repeat
    			end try
    		end tell
    	end tell
    end tell
    tell application "System Preferences"
    	set current pane to pane ""
    end tell
    tell application "System Events"
    	get properties
    	tell process "System Preferences"
    		tell window "Network"
    			-- Selects the active network connection
    			tell table 1 of scroll area 1
    				click row 1
    			end tell
    			tell group 1
    				if not (exists button "Turn Wi-Fi Off") then
    					display dialog "Please Click The Wi-Fi Row"
    					repeat while not (exists button "Turn Wi-Fi Off")
    						delay 0.3
    					end repeat
    				end if
    			end tell
    			--Select the Advanced button
    			click button "Advanced…"
    			--Select the Proxies tab
    			tell tab group 1 of sheet 1
    				-- delay 1
    				click radio button 6
    				tell group 1
    					tell table 1 of scroll area 1
    						set selected of row 6 to true
    						if value of (checkbox 1 of row 6) is 0 then
    							display dialog "SOCKS Proxy OFF"
    							click checkbox of row 6
    						end if
    					end tell
    					tell group 1
    						set value of text field 1 to SocksIP
    						set value of text field 2 to SocksPort
    					end tell
    				end tell
    			end tell
    			tell sheet 1
    				click button "OK"
    			end tell
    		end tell
    		tell window "Network"
    			click button "Apply"
    		end tell
    	end tell
    end tell
    tell application "System Preferences"
    end tell
    This script was designed for use with the application "iRandomizer Numbers" an iOS tethering app that's still in the App Store (Get it while it lasts).

    While you still have to connect to the network, enter the WEP Password, and set up the static IP address on the iPhone, this script saves a lot of time setting up the Mac side.

    To use:
    1. Run the script
    2. Connect to the "Tethering" Wi-Fi network on your iPhone/iPad
    3. Enter the passcode: 1234567890
    4. Set the static IP Address on your iPhone to with the subnet mask
    5. Finally, run iRandomizer Numbers (or your tethering app of choice)
    6. Enjoy!

  2. coder12, Feb 4, 2012
    Last edited: Feb 4, 2012

    coder12 macrumors 6502a


    Jun 28, 2010
    Thanks for the script! I'm having some troubles though...

    I can get the two devices to talk using the Web Proxy (HTTP) in my Mac side with the Proxy IP supplied by iRandomizer, but I can't seem to get my SOCKS proxy working! I'm just using the Proxy ID from iRandomizer for the Mac side, but iRandomizer just says "Unsupported SOCKS protocol"...

    Any help? I'd really like to get this to work...!

    Edit: Got it to work!!! :D
    The other guides showed the HTTP proxy usage... but after further research, you don't need to use it!

    So for all the other fellas and ladies out there, you don't need http, just use SOCKS! :)
  3. Tweakage macrumors newbie

    Apr 25, 2012
    Hey sorry to bother I bought handylight pro and have followed many detailed tutorials getting close to tethering (airport status was green and connected) but always all browsers I tried read proxy error. Is it possible to explain to a complete newb with no code experience how to get this ball rolling please or am I no chance at grasping this? Dam Optus pre Paid restrictions ! I have iPhone 4s latest update cheers
  4. Tweakage macrumors newbie

    Apr 25, 2012
    Ok so I googled it a bit and see it's built into Mac osx! So is it a simple matter of copy and paste into app window by any chance or a bit more to it? Cheers

Share This Page