[Solved] How to enter login information for a website from the linux command line
My internet connection is provided by the university. It is protected to a username/password combination.
This means when I start up my computer, I have to start a web browser and open an arbitrary website. I am then redirected to a page, which (among other things) contains two forms. In these I have to input username and password. I managed to do this with firefox (which can save the password) and also with links (which loads faster and from the command line).
Is there any way to automate the login process using a bash script? This would allow doing the login when booting, so that it is already there when I start the X server.
You can try it out with curl, you can Simply use curl like this to login to web page :
curl --user name:password http://somesite.com -v
You can pass Data to website like this from Stackoverflow answer
curl -b cookies.txt -c cookies.txt --data "Username=xx&Password=xx&Login=Login" [urlthatyour form submits]
you need cookies if you want to make another curl request after logging in. the session id in cookies will help next curl request authorized.
If you don’t want cookies you can use
curl --data "Username=xx&Password=xx&Login=Login" [url that your form submits]
You can additionally refer here for Special Commands
I finally found a way to automatically log in using
elinks. It works and it is even easy to configure!
Two options need to be set. This can done by adding the following lines in
~/.elinks/elinks.conf (if the file is not there, create one) or by changing the values at the respective positions in the options dialog within
# Save username and password for later use set document.browse.forms.show_formhist = 1 # Do not ask for confirmation before a form is submitted set document.browse.forms.confirm_submit = 0
Steps for a scriptable autologin are then:
- Set those two options
- Open the login page in
elinks, fill the forms and submit them.
- Choose to remember name and password for later use.
- Close elinks
elinks -auto-submit http://somesite.com
The latter command should perform the automatic login without further user interaction.
I actually use
timeout 1m elinks -auto-submit http://somesite.com &, so that I do not have an idling elinks process running in the background all the time.
A simple way to script this is with Selenium.
You can use their Firefox “Test Recorder” plugin to record a test of yourself logging in to the network, and then play back the test.
Yes, there is a very simple way to login to your university’s internet.You can use the ‘Lynx‘ web browser which is a text-based browser, designed for use on terminal. So, here is the way:
$ echo "username=myname&password=mypassword" | lynx "url of the form" -post_data
‘username‘ is the name of the field corresponding to the user name in the form and ‘password‘ is the name of the field corresponding to the password field and ‘myname‘ and ‘mypassword‘ are the corresponding values to be filled in the form.
You can find field name by using ‘Inspect Element’ from any browser.
I tried with curl as directed in the answer by BlueBerry – Vignesh4303 but didn’t work.
You can get an add-on for your browser which will auto log-in to websites with saved passwords. I used AutoAuth with firefox. Then you login once and save your credentials, then write a script that just has
firefox https://website address goes here
When executed, it will go and auto login. I tried with multiple sites and it worked well.