bash, een ip verwissel script

Pagina: 1
Acties:

  • donderklik
  • Registratie: Januari 2004
  • Laatst online: 07-09-2023

donderklik

northing.nl

Topicstarter
Al een tijdje ben ik bezig met een script voor het wisselen van je ip.
Thuis gebruik ik een statische ip en op school een dhcpc.
Nu ben ik bezig met het verbouwen van het script.
- je kunt gateway invoeren
- je kunt bij statisch een ip geven

<code>
#!/bin/bash
#Start wisseling van ip
#Gebruik dhcpc/static

echo "Start programma"

declare -a wissel;
declare -a ip;
declare -a gateway;
declare -a config;

read -p "Kies d voor dhcpc of s voor static: " wissel;
read -p "Geef gateway: " gateway;

#wanneer er gekozen is voor de dhcpc instellingen

if [ "$wissel" == "d" ]; then

echo "Dhcpc instellingen (Gateway: $gateway)";

config='# /etc/rc.d/rc.inet1.conf dhcpc;IPADDR[0]=\"\";NETMASK[0]=\"\";USE_DHCP[0]=\"yes\";DHCP_HOSTNAME[0]=\"\";GATEWAY=\"$gateway\";DEBUG_ETH_UP=\"no\";';

su -c "rm -f /etc/dhcpc/dhcpcd-eth0.pid && ifconfig eth0 down && echo "$config">/etc/rc.d/rc.inet1.conf && /etc/rc.d/rc.inet1";

read -p "Wisseling naar dhcpc, OKE";

fi

#wanneer er gekozen is voor static

if [ "$wissel" == "s" ]; then

read -p "Geef ip: " ip;

echo "Static instellling (Gateway: $gateway)";

echo "Ip: $ip";

config='# /etc/rc.d/rc.inet1.conf dhcpc;IPADDR[0]=\"$ip\";NETMASK[0]=\"\";USE_DHCP[0]=\"\";DHCP_HOSTNAME[0]=\"\";GATEWAY=\"$gateway\";DEBUG_ETH_UP=\"no\";';

su -c "rm -f /etc/dhcpc/dhcpcd-eth0.pid && ifconfig eth0 down && echo "$config">/etc/rc.d/rc.inet1.conf && /etc/rc.d/rc.inet1";

read -p "Wisseling naar static, OKE";

fi
</code>

Nadat je je root paswoord geeft moet hij alles opslaan (variabel, maar hij schrijft niets weg naar rc.inet1.conf (echo "$config">/etc/rc.d/rc.inet1.conf).

Iemand een idee hoe het goed moet, of iemand een andere methode OF iemand die hier al een script voor heeft? (en kan iemand me vertellen hoe ik code in een code balk krijg? Ik kan het nergens terug vinden :'( )

Northing.nl


Verwijderd

ik heb gewoon een internet abonnoment met een IP-Range van 8 IP's waardoor ik mijn ip gewoon kan verandere.

  • donderklik
  • Registratie: Januari 2004
  • Laatst online: 07-09-2023

donderklik

northing.nl

Topicstarter
Dit script draai op mijn laptop die ik gebruik voor thuis, op mijn werk en op school. Daarvoor heb ik verschillende instellingen voor mijn ip.

Vandaar dit scriptje. :)

En verder is het leuk om in Bash te "programmeren"

[ Voor 14% gewijzigd door donderklik op 04-08-2005 19:41 . Reden: toevoeging van "En verder..." ]

Northing.nl


  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

en kan iemand me vertellen hoe ik code in een code balk krijg?
< vervangen door "[" en > door "]" ipv <> werkt GOT met [] zie onderstaande :)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash
#Start wisseling van ip
#Gebruik dhcpc/static

echo "Start programma" 

declare -a wissel;
declare -a ip;
declare -a gateway;
declare -a config;

read -p "Kies d voor dhcpc of s voor static: " wissel;
read -p "Geef gateway: " gateway;

#wanneer er gekozen is voor de dhcpc instellingen

if [ "$wissel" == "d" ]; then
    
echo "Dhcpc instellingen (Gateway: $gateway)";
    
config='# /etc/rc.d/rc.inet1.conf dhcpc;IPADDR[0]=\"\";NETMASK[0]=\"\";USE_DHCP[0]=\"yes\";DHCP_HOSTNAME[0]=\"\";GATEWAY=\"$gateway\";DEBUG_ETH_UP=\"no\";';
    
su -c "rm -f /etc/dhcpc/dhcpcd-eth0.pid && ifconfig eth0 down && echo "$config">/etc/rc.d/rc.inet1.conf && /etc/rc.d/rc.inet1";
    
read -p "Wisseling naar dhcpc, OKE";

fi

#wanneer er gekozen is voor static

if [ "$wissel" == "s" ]; then
    
read -p "Geef ip: " ip;
    
echo "Static instellling (Gateway: $gateway)";
    
echo "Ip: $ip";
    
config='# /etc/rc.d/rc.inet1.conf dhcpc;IPADDR[0]=\"$ip\";NETMASK[0]=\"\";USE_DHCP[0]=\"\";DHCP_HOSTNAME[0]=\"\";GATEWAY=\"$gateway\";DEBUG_ETH_UP=\"no\";';
    
su -c "rm -f /etc/dhcpc/dhcpcd-eth0.pid && ifconfig eth0 down && echo "$config">/etc/rc.d/rc.inet1.conf && /etc/rc.d/rc.inet1";
    
read -p "Wisseling naar static, OKE";

fi
waarom pak je de RC config files???? ifconfig direct parameters meegeven vanuit batch bestanden werkt ook!

je kan toch ook dmv een script je eth0 settings veranderen.
noem het bestand bv ethernet.sh
code:
1
2
3
4
5
6
7
8
9
10
11
<vraag op monitor>: voer keuze in a,b,c

if keuze a then:
ifconfig eth0 dchp (en nog meer code) 
elif keuze b then:
ifconfig eth0 192.168.a.b netmask 255.255.255.0
cp /home/~user/<bestand1> /etc/resolve
elif keuze c then:
ifconfig eth0 192.168.c.d netmask 255.255.255.0
cp /home/~user/<bestand2> /etc/resolve
end if



op deze manier kan je simpel maar effectief tijdens het opstarten een menutje maken

door het batchbestandje in /sbin/ethernet.sh te zetten kan je het altijd aanroepen.

door in rc.local of in je opstart dir/script het ethernet.sh bestand op te starten wordt het script gelijk uitgevoerd.

[ Voor 37% gewijzigd door vso op 04-08-2005 20:01 . Reden: tekst netter gemaakt ]

Tja vanalles


  • donderklik
  • Registratie: Januari 2004
  • Laatst online: 07-09-2023

donderklik

northing.nl

Topicstarter
vso bedankt _/-\o_

Dit brengt weer nieuw licht op de zaak. Op deze manier het probleem tekkelen had ik nog niet bedacht.

Ik ga gelijk aan de slag. Morgen plaats ik hier mijn script. :D

Northing.nl


  • axis
  • Registratie: Juni 2000
  • Laatst online: 26-01-2023
Verwijderd schreef op donderdag 04 augustus 2005 @ 19:33:
ik heb gewoon een internet abonnoment met een IP-Range van 8 IP's waardoor ik mijn ip gewoon kan verandere.
In het verkeerde topic gepost?

Two advices for network troubleshooting.. learn to draw diagrams in Visio, and THINK IN LAYERS!


Verwijderd

Hier bestaat kant en klare software voor, waarmee je zelf profielen kan aanmaken voor je configuratie, al naargelang je "thuis" of "op school" of "op kantoor" bent. Standaard in debian zitten er zelfs meerdere progjes die precies doen wat jij wilt:
* laptop-net
* divine
* switchconf
* whereami

  • donderklik
  • Registratie: Januari 2004
  • Laatst online: 07-09-2023

donderklik

northing.nl

Topicstarter
Wel het is me al gelukt :) . Alles doet het naar wens.
Hier is de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
#IP wissel programma (IPwp)
#Je kunt kiezen tussen dhcp, een dhcp waar de gateway bekent is (thuis) en statisch ip.

echo "Start IPwp" 

declare -a WISSEL;
declare -a IP;
declare -a GATEWAY;
declare -a DHCP_HOSTNAME;

read -p "Kies d voor dhcpc, t voor thuis of s voor static: " WISSEL;

#wanneer er gekozen is voor de dhcpc instellingen
if [ "${WISSEL}" == "d" ]; then
    echo "Dhcpc instellingen";
    read -p "Geef gateway: " GATEWAY;
    read -p "Geef dhcp-hostname: " DHCP_HOSTNAME;
    su -c "rm -f /etc/dhcpc/dhcpcd-eth0.pid && ifconfig eth0 down && /sbin/dhcpcd -d -t 10 -h ${DHCP_HOSTNAME} eth0 && /sbin/route add default gw ${GATEWAY} dev eth0 metric 1";
    read -p "Wisseling naar dhcpc, OKE";
fi

#wanneer er gekozen is voor thuis
if [ "${WISSEL}" == "t" ]; then
    echo "Thuis instelling (Gateway: 10.0.0.138)";
    su -c "rm -f /etc/dhcpc/dhcpcd-eth0.pid && ifconfig eth0 down && /sbin/dhcpcd -d -t 10 eth0 && /sbin/route add default gw 10.0.0.138 dev eth0 metric 1";
    read -p "Wisseling naar thuis, OKE";
fi

#wanneer er gekozen is voor static
if [ "${WISSEL}" == "s" ]; then
    read -p "Geef Gateway: " GATEWAY;
    read -p "Geef ip: " IP;
    echo "Static instelling (Gateway: ${GATEWAY})";
    echo "ip: ${IP}";
    su -c "rm -f /etc/dhcpc/dhcpcd-eth0.pid && ifconfig eth0 down && ifconfig eth0 ${IP} netmask 255.255.255.0 && /sbin/route add default gw ${GATEWAY} dev eth0 metric 1";
    read -p "Wisseling naar static, OKE";
fi


Ik heb een beetje afgekeken van /etc/rc.d/rc.inet1. _/-\o_

Northing.nl

Pagina: 1