Last active
April 15, 2025 08:08
-
-
Save mid-kid/b60563059a393f90522f5e57aabfc493 to your computer and use it in GitHub Desktop.
WiFi in de trein auto login script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Logs in automatically to the "WiFi in de trein" public hotspots, located in | |
# trains in the Netherlands. | |
# Requires: curl, sed | |
set -e | |
tmp="$(mktemp -d -p '' 'hslogin.XXXXXXXXXX')" | |
trap "rm -r '$tmp'" EXIT | |
curl="curl --dns-servers 8.8.8.8,8.8.4.4 -s -v -m 30" | |
$curl -c "$tmp/cookies" 'http://portal.nstrein.ns.nl/' > "$tmp/page" | |
token="$(sed -n -e 's/.* id="csrfToken" value="\([^"]*\)" .*/\1/p' "$tmp/page")" | |
test -n "$token" | |
$curl -b "$tmp/cookies" -X POST -H 'Content-Length: 0' -H 'Origin: http://portal.nstrein.ns.nl' -H 'Referer: http://portal.nstrein.ns.nl/' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: close' "http://portal.nstrein.ns.nl/nstrein:main/internet?csrfToken=$token" > /dev/null |
When i run this, it states that --dns-servers
not supported is, i have tried with curl from snap and from apt, but both dont give a result
I don't know if curl on ubuntu is built with adns support, I use gentoo and I had to enable it. The only reason it's there is because dnsmasq wouldn't consistently resolve domain names before logging into the portal. You can remove the --dns-servers 8.8.8.8,8.8.4.4
option and depending on your system it might "just work".
yes, this worked, it even worked when i forgot to remove the dns servers listed, script works way better than all the "solutions" i found
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It's a shell script. You run it with a shell.
Depending on what wireless networking system you use, you can bind it to execute after connecting to specific networks. For example, in my
/etc/dhcpcd.exit-hook
file, I have the following:But if you're using NetworkManager without dhcpcd (which I think is the most common configuration for Linux these days), then you might want to look for examples on how to make a dispatcher.d script for it. Exact documentation is for example here: https://manpages.debian.org/bookworm/network-manager/NetworkManager-dispatcher.8.en.html