Logging into LAWN
The usual method for logging into LAWN is with eduroam, where a supplicant running on your device automatically authenticates your device prior to gaining network access; or with GTother, which relies on a web browser — Firefox, Safari, Mozilla, Internet Explorer, etc. Users access and submit an HTML form containing their GT Account username and password, and are subsequently logged into LAWN.
LAWN via the command-line
If your device does not support eduroam, and you need an automated method for logging into LAWN, the solution is to connect to GTother and automate a web client — that is, to use a command line tool to HTTP POST user credentials to the same action URL as the HTML form on the LAWN login page. Two popular command line HTTP tools are curl (available from: http://curl.haxx.se/ ) and GNU wget (available from http://www.gnu.org/software/wget/wget.html ). Instructions on using both curl and wget to log into LAWN are presented below.
- Though your operating system may have wget and/or curl already installed, in order to post to the LAWN login URL, they must be compiled with SSL (https) support.
- True automation of the login process involves either passing your password as a command-line argument or storing it in a file local to your machine. Both options have important security considerations. Automating your LAWN login may place the security of your password at a greater risk.
Logging into LAWN
Logging into LAWN involves passing the following form fields via wget or curl:
(for authenticating the device that you POST from)
|username||your GT Account username|
|iss||- set to 'false' to disable Inbound Service Security
- excluded or set to 'true' will enable ISS
|mac||mac address (for LAWN Device Login only)|
|output||format for login result (see table below)|
output argument is optional. If no argument is given,
output=web is assumed.
Examples :: Assuming your account name is
gb01 and your password is
b@dD00d, you want to use Inbound Service Security, and you want to see the output as text (each example is to be typed on one line):
curl -s -f -F username='gb01' -F password='b@dD00d' -F iss='true' -F output='text' https://auth.lawn.gatech.edu/index.php
wget -q -O - --post-data='username=gb01&password=b@dD00d&iss=true&output=text' https://auth.lawn.gatech.edu/index.php
If you wish to store the arguments in a file instead of passing them on the command line, place the string
username=gb01&password=b@dD00d&iss=true&output=text in file file named
curl -s -f --data '@lawnlogin' https://auth.lawn.gatech.edu/index.php
wget -q -O - --post-file=lawnlogin https://auth.lawn.gatech.edu/index.php
If you want to log a device in that is not the one you are authenticating from (i.e. a Sony PSP), you would specify a mac address:
curl -s -f -F username='gb01' -F password='b@dD00d' -F iss='true'
wget -q -O - --post-data='username=gb01&password=b@dD00d&iss=true&output=text&mac=9a:18:f2:06:19:71' https://auth.lawn.gatech.edu/index.php
Checking login status
If you wish to check the status of your login to LAWN — that is, to see if you are still logged into LAWN (from the device you are currently ON) — you can use wget or curl, and using the same
output options as above (but no username or password):
curl -s -f https://auth.lawn.gatech.edu/login_status.php?output=text
wget -q -O - https://auth.lawn.gatech.edu/login_status.php?output=text
If you want to get information about a device login from a machine/script that is not on the device itself, you can specify username, password, and a mac address:
curl -s -f -F username='gb01' -F password='b@dD00d'
wget -q -O - --post-data='username=gb01&password=b@dD00d&output=text&mac=9a:18:f2:06:19:71' https://auth.lawn.gatech.edu/login_status.php
The results from login_status.php may be any of the following:
- logged_in,re29 is on xxx.xxx.xxx.xxx with MAC xx:xx:xx:xx:xx:xx
- not_authenticated,A device with MAC xx:xx:xx:xx:xx:xx is not logged in by re29
- pending_login,3 (3 is number of seconds to wait before trying again)
Logging out of LAWN
You are logged out of LAWN when your machine fails to renew its DHCP lease (presumably because you've shutdown, put your machine to sleep, or you are out of range of the wireless network). If you want to log out of LAWN manually, you can access:
curl -s -f https://auth.lawn.gatech.edu/logout.php?output=text
wget -q -O - https://auth.lawn.gatech.edu/logout.php?output=text