#!/bin/sh # $Id: dialup.pl,v 1.2.2.1 1999/05/07 10:02:40 abial Exp $ set_resolv() { echo "" echo " Domyślna Nazwa Domeny" echo "" echo "Podaj domyślną nazwę domeny Internetowej, której będziesz używać." echo "Jeśli Twój provider ma nazwy typu 'www.akuku.com.pl', to będzie" echo "to najprawdopodobniej 'akuku.com.pl'." echo "" echo "Jeśli po prostu naciśniesz Enter, ustawisz (nieistniejącą) domenę" echo "'mydomain.org.pl', co nie jest najlepszym pomysłem, ale może na" echo "razie wystarczyć." echo "" read -p "Podaj domyślną nazwę domeny: " domain if [ "X${domain}" = "X" ] then echo "" echo "Dobrze, ustawimy 'mydomain.org.pl', ale miej świadomość" echo "że taka domena prawdopodobnie nie istnieje." echo "" read -p "Naciśnij Enter" junk domain="mydomain.org.pl" fi echo "" echo " Adres Serwera DNS" echo "" echo "Podaj adres w postaci numerycznej serwera DNS. Jest on potrzebny" echo "do zamiany nazw (takich jak www.freebsd.org.pl) na adresy IP" echo "(takie jak 192.168.1.1). Jeśli nie jest to ustawione poprawnie," echo "będziesz musiał posługiwać się adresami IP podczas łączenia się" echo "z innymi maszynami - jest to co najmniej niewygodne." echo "" echo "Jeśli po prostu naciśniesz Enter, ustawisz (istniejący) serwer" echo "o numerze 194.204.159.1 (w sieci TP SA)." echo "" read -p "Podaj adres IP serwera DNS (w postaci A.B.C.D): " dns if [ "X${dns}" = "X" ] then echo "" echo "Dobrze, ustawimy adres DNS serwera na 194.204.159.1, ale" echo "niekoniecznie musi to być najlepszy serwer w Twojej części sieci." echo "" read -p "Naciśnij Enter..." junk dns="194.204.159.1" fi } set_phone() { while [ "X${phone}" = "X" ] do echo "" echo " Numer Telefoniczny" echo "" echo "Podaj numer telefoniczny, którego normalnie używasz, żeby" echo "dodzwonić się do swojego providera. Powinieneś podać pełny" echo "numer, z ewentualnymi przedrostkami, np: 022113355" echo "" read -p "Podaj numer telefoniczny: " phone done } set_port() { while [ "X${dev}" = "X" ] do echo "" echo " Numer Portu Modemowego" echo "" echo "Podaj numer portu szeregowego, do którego podłączony jest modem." echo "UWAGA: DOSowy port COM1 to port 0 (cuaa0) we FreeBSD, COM2 -" echo "port 1, itd. Podaj tutaj tylko numer, a nie pełną nazwę urządzenia." echo "" read -p "Podaj numer portu szeregowego (0,1,2): " dev done } set_speed() { while [ "X${speed}" = "X" ] do echo "" echo " Prędkość Linii Szeregowej" echo "" echo "Wybierz prędkość linii szeregowej, której używa modem." echo "" echo "UWAGA: Prędkość linii szeregowej NIE jest tym samym, co prędkość" echo "modemu. Jeśli Twój modem obsługuje protokół V.42 lub MNP" echo "(zazwyczaj tak właśnie jest), prędkość linii szeregowej musi być" echo "dużo większa od prędkości modemu. Np. dla modemów 14.4 kbps z" echo "kompresją należy wybrać prędkość 38400 bps, a dla modemów" echo "28.8 kbps z kompresją należy wybrać prędkość 115200 bps." echo "" echo " 1. 9600 bps" echo " 2. 14400 bps" echo " 3. 28800 bps" echo " 4. 38400 bps (modem 14.4 kbps z kompresją)" echo " 5. 57600 bps" echo " 6. 115200 bps (modem 28.8 kbps z kompresją)" echo "" read -p "Wybierz prędkość linii szeregowej (1-6): " ans case ${ans} in 1) speed=9600 ;; 2) speed=14400 ;; 3) speed=28800 ;; 4) speed=38400 ;; 5) speed=57600 ;; 6) speed=115200 ;; *) read -p "Zła wartość! Naciśnij Enter..." junk unset speed ;; esac done } set_timeout() { while [ "X${timo}" = "X" ] do echo "" echo " Czas rozłączenia" echo "" echo "Podaj czas (w sekundach), po którym, jeśli nie ma ruchu na łączu," echo "nastąpi automatyczne rozłączenie. To pomaga w oszczędzaniu :-)" echo "" read -p "Podaj czas rozłączenia: " timo done } set_user() { while [ "X${user}" = "X" ] do echo "" echo " Nazwa Użytkownika" echo "" echo "Podaj nazwę użytkownika (login name), której normalnie używasz" echo "do zalogowania się do serwera komunikacyjnego providera." echo "" read -p "Podaj nazwę użytkownika: " user done } set_pass() { while [ "X${pass}" = "X" ] do echo "" echo " Hasło" echo "" echo "Podaj hasło, którego używasz do zalogowania się do providera." echo "" echo "UWAGA: Hasło to zostanie zapisane w czytelnej postaci na" echo "dyskietce!!! Jeśli tego nie chcesz... będziesz musiał logować się" echo "ręcznie, tak jak dotychczas. W tym przypadku przerwij ten skrypt" echo "przez Ctrl-C." echo "" stty -echo read -p "Podaj swoje hasło: " pass echo "" read -p "Podaj powtórnie swoje hasło: " pass1 stty echo echo "" if [ "X${pass}" != "X${pass1}" ] then echo "Hasła nie pasują do siebie. Naciśnij Enter..." pass="" read junk set_pass fi done } set_chat() { echo "" while [ "X${chat}" = "X" ] do echo " Rodzaj dialogu podczas logowania się" echo "" echo "Jak normalnie przebiega proces logowania się do serwera" echo "komunikacyjnego?" echo "" echo "1) ......login: ${user}" echo " ...password: ********" echo " (tutaj startuje PPP)" echo "" echo "2) ...username: ${user} (TP S.A.)" echo " ...password: ********" echo " (tutaj startuje PPP)" echo "" echo "3) ......username: ${user} (NASK)" echo " ......password: ********" echo " portX/..xxx...: ppp" echo " (tutaj startuje PPP)" echo "" echo "4) Zastosuj CHAP" echo "" echo "5) Zastosuj PAP" echo "" read -p "Wybierz 1,2,3,4 lub 5: " chat case ${chat} in 1) chat1="TIMEOUT 10 ogin:--ogin: ${user} word: \\\\P" chat2="login/password" ;; 2) chat1="TIMEOUT 10 ername:--ername: ${user} word: \\\\P" chat2="TP SA - username/password" ;; 3) chat1="TIMEOUT 10 ername:--ername: ${user} word: \\\\P port ppp" chat2="NASK - username/password/port" ;; 4) chat1="-" chat2="CHAP" ;; 5) chat1="-" chat2="PAP" ;; *) echo "Zła wartość! Musisz wybrać 1,2 lub 3." echo "" unset chat unset chat2 ;; esac done } # Main entry of the script echo "" echo " Witamy w Automatycznym Konfiguratorze PPP! :-)" echo "" echo " PPP jest już wstępnie skonfigurowane, tak że można ręcznie wybierać" echo "numer i ręcznie logować się do serwera komunikacyjnego. Jest to jednak" echo "dosyć uciążliwy sposób na dłuższą metę." echo "" echo "Ten skrypt postara się stworzyć taką konfigurację PPP, żeby umożliwić" echo "automatyczne wybieranie numeru i logowanie się, a ponadto pozwoli na" echo "uruchamianie ppp w tle - nie zajmuje ono wówczas konsoli." echo "" echo "Jeśli chcesz kontynuować, naciśnij Enter, jeśli nie - Ctrl-C." echo "" read junk # Step through the options set_phone set_port set_speed set_timeout set_user set_pass set_chat set_resolv ans="loop_it" while [ "X${ans}" != "X" ] do echo "" echo " Ustawione zostały następujące parametry:" echo "" echo " 1. Numer telef.: ${phone}" echo " 2. Numer portu: cuaa${dev}" echo " 3. Prędkość portu: ${speed}" echo " 4. Czas rozłącz.: ${timo} s" echo " 5. Użytkownik: ${user}" echo " 6. Hasło: ${pass}" echo " 7. Typ dialogu: ${chat} (${chat2})" echo " 8. Nazwa domeny: ${domain}" echo " Serwer DNS: ${dns}" echo "" echo "Jeśli te wartości są poprawne, po prostu naciśnij Enter" read -p "Jeśli nie, podaj numer opcji, którą chcesz zmienić (1-8): " ans a="X${ans}" case ${a} in X1) unset phone set_phone ;; X2) unset dev set_port ;; X3) unset speed set_speed ;; X4) unset timo set_timeout ;; X5) unset user set_user ;; X6) unset pass set_pass ;; X7) unset chat unset chat1 unset chat2 set_chat ;; X8) unset domain unset dns set_resolv ;; X) ;; *) read -p "Zły numer opcji! Naciśnij Enter..." junk ans="wrong" ;; esac done echo "" echo -n "Generowanie /etc/ppp/ppp.conf file..." rm -f /etc/ppp/ppp.conf cp /etc/ppp/ppp.conf.template /etc/ppp/ppp.conf echo "" >>/etc/ppp/ppp.conf echo "# This part was generated with $0" >>/etc/ppp/ppp.conf echo "dialup:" >>/etc/ppp/ppp.conf echo " set line /dev/cuaa${dev}" >>/etc/ppp/ppp.conf echo " set phone ${phone}" >>/etc/ppp/ppp.conf echo " set authkey ${pass}" >>/etc/ppp/ppp.conf echo " set timeout ${timo}" >>/etc/ppp/ppp.conf if [ "X${chat1}" = "-" ] then echo "set authname ${user}" >>/etc/ppp/ppp.conf else echo " set login \"${chat1}\"" >>/etc/ppp/ppp.conf fi echo " set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0" >>/etc/ppp/ppp.conf echo " Zrobione." echo -n "Generowanie /etc/resolv.conf..." echo "# This file was generated with $0">/etc/resolv.conf echo "domain ${domain}" >>/etc/resolv.conf echo "nameserver ${dns}">>/etc/resolv.conf echo "hostname=\"pico.${domain}\"">>/etc/rc.conf echo " Zrobione." echo "" echo "Ok. Sprawdź zawartość /etc/ppp/ppp.conf, i popraw go jeśli to konieczne." echo "Następnie możesz wystartować ppp w tle:" echo "" echo " ppp -background dialup" echo "" echo "PAMIĘTAJ, żeby uruchomić /stand/update ! Inaczej zmiany nie zostaną zapisane" echo "na dyskietce!" echo "" echo "Ok. Jeśli Twój plik /etc/ppp/ppp.conf jest prawidłowy (co jest dosyć" echo -n "prawdopodobne :-), czy chcesz teraz uruchomić połączenie dialup? (t/n) " read ans opts="" while [ "X${ans}" = "Xt" ] do echo "" if [ "X${opts}" = "X" ] then echo "Wystartujemy 'ppp' z poniższymi opcjami:" echo "" echo " ppp -background dialup" echo "" echo -n "Czy chcesz je zmienic?? (t/n) " read oo if [ "X${oo}" = "Xt" ] then read -p "Podaj opcje ppp: " opts else opts="-background dialup" fi echo "" echo "" fi echo "Uruchamiam połączenie dialup. Proszę czekać dopóki nie pojawi się" echo "komunikat 'PPP Enabled'..." echo "" ppp -background dialup if [ "X$?" != "X0" ] then echo -n "Połączenie nie powiodło się. Spróbować jeszcze raz? (t/n) " read ans if [ "X${ans}" != "Xt" ] then echo "Spróbuj później. Sprawdź również plik konfiguracyjny /etc/ppp/ppp.conf." echo "" fi else echo "" echo "Gratuluję! Jesteś on-line." echo "" exit 0 fi done