Programm zum wechseln der IP

Dieses Thema im Forum "Internet, lokale Netzwerke und Wireless Lan" wurde erstellt von Mondi, 10.11.2006.

  1. Mondi

    Mondi Grünschnabel

    Dabei seit:
    31.10.2006
    Beiträge:
    6
    Zustimmungen:
    0
    Ort:
    Mannheim
    Hallo

    als zuerst mal ich suche kein Programm das meine Internet IP wechselt.

    zu meiner Situation:

    - Betriebssystem openSUSE 10.1 auf meinem NB
    - muss am Tag 5 mal meine IP Adresse, die DNS Server und das Standardgateway ändern
    - die Verwendung von DHCP ist nicht Möglich
    - Insgesamt muss ich zwischen 42 verschiedenen Konfigurationen wechseln je nach Kunde

    Anforderungen an das Tool:

    1. Möglichkeit Profile anzulegen (z.B. wie bei der Firefox Erweiterung zum wechseln der Proxys)
    2. eventuell die Möglichkeit auch den Proxy mit zu Definieren
    3. sofortige Übername des jeweiligen Profils und neu starten des Netzwerkinterfaces

    ich hoffe das mir jemand eine Empfehlung für ein Tool geben kann wobei ein kurzer Erfahrungsbericht super währe.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 supersucker, 10.11.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Ein Tool für sowas ist mir nicht bekannt, aber erstell dir doch einfach selber die Profile sowie ein script welches dir je nach Profilangabe die Profile-Datei parst und lädt, also sowas wie

    Code:
    chprofile kunde_1
     
  4. #3 root1992, 10.11.2006
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    Ich denke da könnte dir vll ein shellskript weiterhelfen
     
  5. Mondi

    Mondi Grünschnabel

    Dabei seit:
    31.10.2006
    Beiträge:
    6
    Zustimmungen:
    0
    Ort:
    Mannheim
    dank das habe ich mir fat gedacht da ich schon 2 tage mit der suche bei googel bescheftigt war dann mus ich mir wol eins basteln aber trozdem danke noch ma.
     
  6. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
  7. #6 SkydiverBS, 15.12.2006
    Zuletzt bearbeitet: 15.12.2006
    SkydiverBS

    SkydiverBS Tripel-As

    Dabei seit:
    15.01.2005
    Beiträge:
    207
    Zustimmungen:
    0
    Ort:
    Freising
    Hi!

    Der Thread ist ja schon etwas älter, aber ich hatte das gleiche Problem und habe mir ein kleines Skript geschrieben, dass eine große case-Bedingung enthielt die je nachdem welchen String ich übergebe die notwendigen Befehle (ipconfig, route) mit den entsprechenden Parametern ausführt.

    Gestern habe ich dann hier nochmal reingeschaut und gedacht, dass der ein oder der andere sowas vielleicht auch benötigt und es sich selbst von Grund auf programmieren müsste. Also hab ich noch einige Verbesserungen daran vorgenommen und den Tipp von supersucker übernommen die Profile in eigene Dateien auszulagern.

    Die von Theton geposteten Programme sehen alle gut aus, erschienen mir allerdings als overkill für mein kleines Problemchen das ich momentan regelmäßig zwischen 2-3 Netzwerk-Konfigurationen wechseln muss.

    Hier nun mein Skript und ein Beispiel-Profil:
    netup.sh
    Code:
    #!/bin/sh
    #
    # NETwork setUP
    # Version 0.4.1
    #
    
    # Configuration
    PFDIR="."
    
    # Flags
    PF=""
    VRB=0
    SIM=0
    PRT=0
    
    # Initialisation
    IF="eth0"
    PN=""
    IP=""
    NM=""
    GW=""
    NS1=""
    NS2=""
    DHCP=0
    
    netup_config () {
    	local PN=$1
    	local IF=$2
    	local IP=$3
    	local NM=$4
    	local GW=$5
    	local NS1=$6
    	local NS2=$7
    
    	echo "Setup:"
    	echo "------"
    	if [ $PN ] ; then
    		echo "Profile     : $PN"
    	fi
    	if [ $IF ] ; then
    		echo "Interface   : $IF"
    	fi
    	if [ $IP ] ; then
    		echo "Address     : $IP"
    	fi
    	if [ $NM ] ; then
    		echo "Netmask     : $NM"
    	fi
    	if [ $GW ] ; then
    		echo "Gateway     : $GW"
    	fi
    	if [ $NS1 ] ; then
    		echo "Nameserver1 : $NS1"
    	fi
    	if [ $NS2 ] ; then
    		echo "Nameserver2 : $NS2"
    	fi
    
    	return 0;
    }
    
    netup_interface () {
    	local SIM=$1
    	local IF=$2
    	local IP=$3
    	local NM=$4
    
    	if [ $IF ] && [ $IP ] && [ $NM ] ; then
    		(($SIM)) || ifconfig $IF $IP netmask $NM >/dev/null 2>&1
    	else
    		return 1
    	fi
    
    	return $?
    }
    
    netup_gateway () {
    	local SIM=$1
    	local IF=$2
    	local GW=$3
    
    	if [ $IF ] && [ $GW ] ; then
    		(($SIM)) || route add default gw $GW dev $IF >/dev/null 2>&1
    	else
    		return 1
    	fi
    
    	return $?
    }
    
    netup_nameserver () {
    	local SIM=$1
    	local NS1=$2
    	local NS2=$3
    
    	if [ ! -w "/etc/resolv.conf" ] ; then
    		return 1
    	fi
    
    	if [ $NS1 ] ; then
    		(($SIM)) || echo "nameserver $NS1" >/etc/resolv.conf 2>/dev/null
    		if [ $? = 0 ] && [ $NS2 ] ; then
    			(($SIM)) || echo "nameserver $NS2" >>/etc/resolv.conf 2>/dev/null
    		fi
    	else
    		return 1
    	fi
    
    	return $?
    }
    
    netup_dhcp () {
    	local SIM=$1
    	local IF=$2
    
    	if [ $IF ] ; then
    		(($SIM)) || dhclient $IF >/dev/null 2>&1
    	else
    		return 1
    	fi
    
    	return $?
    }
    
    title () {
    	echo "netup (NETwork setUP) 0.4.1"
    	echo ""
    }
    
    usage () {
    	echo "Usage: ${0##*/} [options] profile"
    	echo ""
    	echo "Options:"
    	echo " -i, --interface IF      Set the interface to IF (default: eth0)"
    	echo " -s, --simulate          Don't do anything just simulate"
    	echo " -v, --verbose           Verbose outputs (e.g. for debugging)"
    	echo " -l, --list              Give a list of available profiles"
    	echo " -p, --print             Print setup of the given profile"
    	echo " -h, --help              Display this help and exit"
    	echo ""
    
    	return 0
    }
    
    profiles () {
    	IFS=$'\t'
    
    	echo "Profiles:"
    	echo "---------"
    	for file in $PFDIR/*.pf ; do
    		file=${file##*/}
    		file=${file%\.pf}
    		if [ "$file" = "*" ] ; then
    			echo "None"
    		elif [ -f "$PFDIR/$file.pf" ] ; then
    			echo "$file"
    		fi
    	done
    
    	return 0
    }
    
    title
    if [ $# -lt 1 ] ; then
    	usage
    	exit 1
    fi
    
    while [ "$1" ] ; do
    	if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then
    		usage
    		exit 0
    	elif [ "$1" = "-l" ] || [ "$1" = "--list" ] ; then
    		profiles	
    		exit 0
    	elif [ "$1" = "-p" ] || [ "$1" = "--print" ] ; then
    		PRT=1
    	elif [ "$1" = "-s" ] || [ "$1" = "--simulate" ] ; then
    		SIM=1
    	elif [ "$1" = "-v" ] || [ "$1" = "--verbose" ] ; then
    		VRB=1
    	elif [ "$1" = "-i" ] || [ "$1" = "--interface" ] ; then
    		IF="$2"
    		shift
    	elif [ -f "$PFDIR/$1.pf" ] ; then
    		PF="$PFDIR/$1.pf"
    	else
    		if [ -z "${1##-*}" ] ; then
    			echo "Unknown option"
    		else
    			echo "No such profile"
    		fi
    		exit 1
    	fi
    	shift
    done
    
    if [ -z "$PF" ] ; then
    	echo "No profile specified"
    	exit 1
    else
    	. "$PF"
    fi
    
    if [ $PRT = 1 ] || [ $VRB = 1 ] ; then
    	netup_config $PN $IF $IP $NM $GW $NS1 $NS2
    	(($PRT)) && exit 0
    	echo ""
    fi
    
    if [ $DHCP = 0 ] ; then
    	echo -n "Configuring interface '$IF'... "
    	if netup_interface $SIM $IF $IP $NM ; then
    		echo "Done"
    	else
    		echo "Failed"
    	fi
    	echo -n "Configuring default gateway... "
    	if netup_gateway $SIM $IF $GW ; then
    		echo "Done"
    	else
    		echo "Failed"
    	fi
    	echo -n "Configuring nameserver... "
    	if netup_nameserver $SIM $NS1 $NS2 ; then
    		echo "Done"
    	else
    		echo "Failed"
    	fi
    else
    	echo -n "Starting DHCP client... "
    	if netup_dhcp $SIM $IF ; then
    		echo "Done"
    	else
    		echo "Failed"
    	fi
    fi
    
    exit 0
    
    sample.pf
    Code:
    #
    # Profile: Sample
    #
    
    PN="Sample"
    IP="192.168.0.2"
    NM="255.255.255.0"
    GW="192.168.0.1"
    NS1="192.168.0.1"
    
    Verbesserungsvorschläge oder Anpassungen an dem Skript sind herzlich willkommen :D !

    Ich weiß nicht ob ich z.Z. noch dazu komme Änderungen daran vorzunehmen aber hier mal eine Liste was aus meiner Sicht noch zu verbessern wäre:
    To-Do:
    • Anpassbarkeit an andere Systeme erhöhen durch seperate Config-Datei
    • Fehler-Ausgaben der aufgerufenen Programme speichern und am Ende ausgeben (nach 'echo "Failed"')
    • Erstellung von Profilen durch das Skript (aus übergebenen Parametern oder der aktuellen Netzwerk-Konfiguration)
    • Mehr Optionen zu den Profilen hinzufügen (z.B. Broadcastmaske)
    • etc.

    Hoffe das es jemand nützlich findet :) !

    EDIT:
    Ach ja, der Aufruf sieht am Beispiel von sample.pf so aus:
    Code:
    $./netup.sh sample
    netup (NETwork setUP) 0.4
    
    Configuring interface 'eth0'... Done
    Configuring default gateway... Done
    Configuring nameserver... Done
    
    EDIT (2006-12-15 17:12):
    Wer mein Script ausprobiert sollte wissen das ich gerade herausgefunden habe das die Optionen zum Simulieren (-s) nicht wie gewünscht funktioniert. Die Datei /etc/resolv.conf wird dabei überschrieben auch wenn der Schalter "-s" auf der Kommandozeile angegeben ist!

    EDIT (2006-12-15 17:50):
    Ich habe den Fehler den ich in EDIT (2006-12-15 17:12) beschrieben habe behoben und den Code oben aktualisiert.

    Gruß,
    Philip
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 supersucker, 15.12.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    SCMP ist in diesem Zusammenhang eine sehr interessante Geschichte:
    Klick
     
  10. #8 SkydiverBS, 15.12.2006
    SkydiverBS

    SkydiverBS Tripel-As

    Dabei seit:
    15.01.2005
    Beiträge:
    207
    Zustimmungen:
    0
    Ort:
    Freising
    Danke für den Tipp!

    Ich muss zugeben, dass ich mir vor allem die ersten beiden erwähnten Webseiten angeschaut habe :) .
     
Thema:

Programm zum wechseln der IP

Die Seite wird geladen...

Programm zum wechseln der IP - Ähnliche Themen

  1. Soundkarte wechseln für laufendes Programm

    Soundkarte wechseln für laufendes Programm: Hallo, ist es möglich ein Programm, das bereits läuft, an eine andere Soundkarte zu binden? Ich möchte, wenn z. B. audacious über die Boxen...
  2. Programme wechseln

    Programme wechseln: Hi, ich hab bei meinem Thinkpad alle Sondertasten Problemlos zum laufen gekriegt, aber ich hab das Problem: Programme bei Gnome wechseln geht...
  3. Welche Distri für Programming from the Ground Up

    Welche Distri für Programming from the Ground Up: Hallo! Ich möchter gerne das Buch Programming from the Ground Up durcharbeiten. savannah_nongnu_org/projects/pgubook/ Da geht es um Programmieren...
  4. Externes Programm mit Script ausführen?

    Externes Programm mit Script ausführen?: Hallo, ich würde gern ein Script zum klonen von festplatten schreiben z.B. mit dem Programm Mondo Rescue. Ist es möglich externen Programmen...
  5. Jetbrains gibt JVM-Programmiersprache Kotlin 1.0 frei

    Jetbrains gibt JVM-Programmiersprache Kotlin 1.0 frei: Jetbrains, Entwickler der freien Entwicklungsumgebung für Java, Grails und einige andere Programmiersprachen IntelliJ IDEA, hat die selbst...