Linksys WAG120N – zmiana adresu IP z poziomu skryptu

Korzystając z Internetu czasem warto zmienić adres IP pod jakim jesteśmy widziani w sieci. Umożliwi to przykładowo pobranie następnego pliku bez oczekiwania. Oczywiście nasz ISP musi udostępniać taką możliwość (tak jest, dla przykładu z Neostradą).

W ruterze Linksys WAG120N można to zrobić za pomocą panelu kontrolnego dostępnego poprzez protokół HTTP. Czyli trzeba:

  1. wejść w przeglądarce pod właściwy adres
  2. wpisać nazwę użytkownika i hasło (lub zaakceptować zapamiętane przez przeglądarkę)
  3. przejść do Status (co)
  4. kliknąć Disconnect
  5. poczekać chwilkę
  6. kliknąć Connect
  7. poczekać chwilkę

Jak widać jest to sporo pracy. Szczęśliwie można to zautomatyzować za pomocą skryptu. Wystarczy skorzystać z sniffera (ja użyłem Wireshark).

W wyniku tego powstał poniższy skrypt powłoki (testowany w Bashu i Zsh). Mam nadzieję, że się komuś przyda. Wystarczy dokleić poniższy kod do pliku konfiguracyjnego powłoki (odpowiednio .bashrc lub .zshrc). No i należy pamiętać, że działa dużo lepiej jeśli odpowiednio ustawi się zmienne USER i PASS.

my-ip() {
  wget 'http://checkip.dyndns.org/' --quiet -O- | sed -e \
    's/[^0-9]*\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/g'
}

change-ip() {
  router-op() {
    USER="user"
    PASS="password"
    ADDR="http://192.168.1.1/setup.cgi"
    wget --http-user=$USER --http-password=$PASS $ADDR \
      --post-data $1 --quiet -O/dev/null 
  }
  REST='&this_file=Status.htm&next_file=Status.htm&message='
  echo Old IP: `my-ip`
  router-op 'ctype=pppoa&ifstatus=Up&todo=disconnect'$REST
  sleep 4
  router-op 'ctype=pppoa&ifstatus=Up&todo=connect'$REST
  sleep 8
  echo New IP: `my-ip`
}

Dodaj komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Zmień )

Twitter picture

You are commenting using your Twitter account. Log Out / Zmień )

Facebook photo

You are commenting using your Facebook account. Log Out / Zmień )

Connecting to %s

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.