Wie Sktipt zum Verbinden zu versh. ESSIDs einbauen?

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
javar
Beiträge: 47
Registriert: 01.03.2006 20:08:21
Kontaktdaten:

Wie Sktipt zum Verbinden zu versh. ESSIDs einbauen?

Beitrag von javar » 18.03.2006 17:48:59

Hallo!
Da ich meinen Laptop in 3 vrschiedenen ESSIDs benutze und immer manuell zu den WLANs connecten muss, habe ich ein kleines Skript (ja, is nicht 'lupenrein', is mein erstes Skript) gescrhieben, welches diese arbeit automatisieren soll. Aus der Konsole ausgeführt funktioneirt es wunderbar

Code: Alles auswählen

clear
essid=`iwlist wlan0 scan | grep ESSID`

if [ $essid = 'ESSID:"linksys"' ] ; then
                echo "Also bist du gerade zu Hause"
                ifconfig wlan0 down
                iwconfig wlan0 essid linksys
                dhclient wlan0
                ifconfig wlan0 up

        else
                if [ $essid = 'ESSID:"funkl"' ] ; then
                echo "@unikl"
                ifconfig wlan0 down
                iwconfig wlan0 essid funkl
                dhclient wlan0
                ifconfig wlan0 up
                fi

                if [ $essid = 'ESSID:"WLAN"' ] ; then
                echo "@studiwohnung"
                ifconfig wlan0 down
                iwconfig wlan0 essid WLAN key xxxxxxxxxxx
                dhclient wlan0
                ifconfig wlan0 up
                fi
fi
Wie kann man das einbauen, so dass das Skript beim Systemstart ausgeführt wird bzw. kann man das in die /etc/network/interfaces einbauen?

Für eine Antwort wäre ich euch dankbar!
Gruß

lobo
Beiträge: 180
Registriert: 27.01.2002 21:48:08
Lizenz eigener Beiträge: GNU General Public License

Beitrag von lobo » 18.03.2006 23:21:10

Hi,

ich würde dir eine andere Lösung vorschlagen und zwar den Debian-Way ;-) Bis vor kurzem habe ich die Netzwerkkonfiguration immer von Hand gemacht, aber nun habe ich mich endlich mal hingesetzt und geschaut wie man das ordentlich macht.

Deine Anforderung lässt sich eigentlich mit einer gut konfigurierten /etc/network/interfaces lösen. Hier ist mal meine Lösung, aber ohne Garantie.

Code: Alles auswählen

auto lo
iface lo inet loopback

mapping eth0
        script guessnet-ifupdown
        map default: dhcp
        map timeout: 5

mapping wlan0
	script guessnet-ifupdown
	map default: disconnected
	map timeout: 5
	map wlan0-home
	map wlan0-unikl
	map wlan0-studiwohnung

iface disconnected inet manual
	pre-up false
	test missing-cable	

iface wlan0-home inet dhcp
	wireless-essid linksys
	wireless-mode managed
	# ip adresse und mac von einem rechner erreichbaren im lan eintragen.
	# am besten ware z.b. die mac/ip vom default gateway
	#
	# !! wird nur benoetigt wenn "guessnet" installiert ist
	test peer address 192.168.0.1 mac 00:00:34:A3:DC:B1

iface wlan0-unikl inet dhcp
	wireless-essid funkl
	wireless-mode managed
	# ip adresse und mac von einem rechner erreichbaren im lan eintragen.
	# am besten ware z.b. die mac/ip vom default gateway
	#
	# !! wird nur benoetigt wenn "guessnet" installiert ist
	test peer address 192.168.0.1 mac 00:00:34:A3:DC:B1

iface wlan0-studiwohnung inet dhcp
	wireless-essid WLAN
	wireless-mode managed
	wireless-key1 xxxxxxxxxxx
	wireless-defaultkey 1
	# ip adresse und mac von einem rechner erreichbaren im lan eintragen.
	# am besten ware z.b. die mac/ip vom default gateway
	#
	# !! wird nur benoetigt wenn "guessnet" installiert ist
	test peer address 192.168.0.1 mac 00:00:34:A3:DC:B1

iface dhcp inet dhcp
Ich weiss nicht ob die "test peer ..." Zeilen bei dir unbedingt nötig sind. Eigentlich wären die nur Notwendig, wenn du manchmal in zwei Verschiedenen Netzen bist, die aber die gleiche SSID und unterschiedliche Verschlüsselung verwenden. Falls du die "test peer" Zeilen verwendest musst du zusätzlich das Paket "guessnet" installieren. Zusätzlich ist bei mir auch noch ifplugd installiert, falls ich in einem Wired-LAN bin.

Gruss

Jochen

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 18.03.2006 23:37:51

Schau dir mal ifscheme an.

Beispiel:

Code: Alles auswählen

auto lo
iface lo inet loopback

mapping eth0
	script ifscheme-mapping

iface eth0-dhcp inet dhcp

iface eth0-rs inet static
address 147.142.233.32
netmask 255.255.255.0
gateway 147.142.233.1
dns-nameservers 129.206.100.126
pre-up echo "rs.uni-heidelberg.de" > /etc/resolv.conf

mapping eth1
	script ifscheme-mapping

iface eth1-uni inet dhcp
up vpnc-connect
down vpnc-disconnect

iface eth1-feld inet dhcp
up vpnc-connect /etc/vpnc/feld.conf
down vpnc-disconnect

iface eth1-home inet dhcp
pre-up /etc/init.d/wpasupplicant start
post-down /etc/init.d/wpasupplicant stop

iface eth1-save inet dhcp
wireless_mode managed
wireless_essid WLAN
wireless_channel 6
wireless_key open s:1234567891011
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

Benutzeravatar
CodemanPE
Beiträge: 147
Registriert: 25.09.2005 18:37:03
Kontaktdaten:

Beitrag von CodemanPE » 19.03.2006 14:27:00

gibbs dafür auch eine ausführliche beschreibung also wie man das dann "ladet?"

lobo
Beiträge: 180
Registriert: 27.01.2002 21:48:08
Lizenz eigener Beiträge: GNU General Public License

Beitrag von lobo » 19.03.2006 14:39:44

CodemanPE hat geschrieben:gibbs dafür auch eine ausführliche beschreibung also wie man das dann "ladet?"
/etc/network/interfaces wird automatisch beim booten geladen oder eben mit /etc/init.d/networking start/stop. Wenn du ifplugd installiert hast, sollten auch die Profile automatisch gewechselt werden, was ich aber mit Wlan noch nicht ausprobiert habe.

javar
Beiträge: 47
Registriert: 01.03.2006 20:08:21
Kontaktdaten:

Beitrag von javar » 19.03.2006 21:19:21

@lobo

Ich habe dein Skript bis auf die test-zeilen komplett in die /etc/network/interfaces eingebaut, nur komischerweise wird das Skript beim Start nicht ausgeührt.
Als Meldung wird ein OK angeziegt, mehr nicht...
Fehlen vielleicht libs oder sonstwas?

P.S. danke für eure Tipps ^^

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von rendegast » 19.03.2006 22:39:14

vielleicht liegt es daran(?):
(man interfaces)
auto lo eth0
allow-hotplug eth1
.
.
.
Lines beginning with the word "auto" are used to identify the physical
interfaces to be brought up when iifup is run with the -a option. (This
option is used by the system boot scripts.) Physical interface names
should follow the word "auto" on the same line. There can be multiple
"auto" stanzas. ifup brings the named interfaces up in the order
listed.
also zBsp:

Code: Alles auswählen

auto lo eth0 wlan0

Antworten