WinFuture-Forum.de: [gelöst] IP-Adresse per Batch-Datei festlegen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[gelöst] IP-Adresse per Batch-Datei festlegen Lösung steht unten auf der Seite :)


#1 Mitglied ist offline   godmode_on 

  • Gruppe: aktive Mitglieder
  • Beiträge: 128
  • Beigetreten: 06. April 06
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:S-H,Deutschland

geschrieben 09. November 2011 - 22:58

Moin! :)

Folgendes Problem: Habe mir für die Uni eine Batch-Datei gebastelt, mit der mann zwischen 2 verschiedenen IP-Konfigurationen hin-und herschalten kann. Die eine Adresse ist eine fest zugewiesene, die andere ist für DHCP gedacht. Das ganze sieht so aus:

@echo off

echo ##############################################
echo ####                                      #### 
echo ####          IP-AUSWAHLSKRIPT            #### 
echo ####          ================            #### 
echo ####                                      #### 
echo ####       VON: Godmode_On                #### 
echo ####                                      #### 
echo ####   WICHTIG: Das Skript IMMER          #### 
echo ####            als Admin starten!        #### 
echo ####                                      #### 
echo ############################################## 
echo ####                                      #### 
echo ####         Wo bist du grade?            #### 
echo ####                                      #### 
echo ####   1 = Zuhause (feste IP)             #### 
echo ####   2 = Woanders (autom. IP)           #### 
echo ####                                      #### 
echo ####   0 = Abbrechen                      #### 
echo ####                                      #### 
echo ############################################## 

:auswahl
set /P wahl=Auswahl: 
if /i "%wahl%"=="1" goto:fest
if /i "%wahl%"=="2" goto:autom
if /i "%wahl%"=="0" goto:exit
echo Falsche Auswahl. Tipp: Weniger saufen. :-P
goto:auswahl

:fest
net stop "DHCP-Client" 
netsh interface ip set address "WLAN" static 192.168.178.55 255.255.255.0 192.168.178.1 1
netsh interface ip set dns "WLAN" static 192.168.178.1
goto:auswahl 

:autom 
net start "DHCP-Client"
netsh interface ip set address "WLAN" dhcp
netsh interface ip set dns "WLAN" dhcp
goto:auswahl 

:exit 
goto:eof



Wenn ich allerdings zur festen IP zurückwechseln will spuckt mir das Skript eine Fehlermeldung aus: "Die Schnittstelle ist unbekannt." außerdem "Der Dienst wurde nicht gestartet."
Der Wert für den DNS-Server wird korrekt eingetragen, Adresse, Subnetzmaske und Gateway allerdings nicht.
Bei der Auswahl einer automatischen IP kommt zwar auch die Meldung "Der Dienst wurde nicht gestartet.", die Einstellungen werden aber korrekt ausgeführt.

Passieren tut das Ganze unter Windows 7 SP1. Datei wird natürlich als Admin ausgeführt. Und meine WLAN-Schnittstelle heißt tatsächlich "WLAN".

Bin ratlos und daher für Ratschläge dankbar! :)
LG

Godmode

Dieser Beitrag wurde von godmode_on bearbeitet: 10. November 2011 - 01:36

Immersion is when you´re playing Condemned and your cat suddenly jumps onto your lap, only to be immediately launched off by a reflexive cannon-like blast of terrified piss.

- Ben "Yahtzee" Croshaw, ZEROPUNCTUATION
0

Anzeige



#2 Mitglied ist offline   Kenny 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.430
  • Beigetreten: 22. September 03
  • Reputation: 13

geschrieben 09. November 2011 - 23:20

evtl. geht es mit ipconfig /release /renew ?

bei google hab ich immer nur "dhcp client" gelesen ohne den - , aber ich habs in der console mal getestet, da hat der den dienst bei mir gestoppt ohne zu meckern
"Irgendwat is ja immer."
0

#3 Mitglied ist offline   godmode_on 

  • Gruppe: aktive Mitglieder
  • Beiträge: 128
  • Beigetreten: 06. April 06
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:S-H,Deutschland

geschrieben 09. November 2011 - 23:30

EDIT: Habs gelöst! :)

Stellte sich heraus dass der Befehl netsh zwingend einen gestarteten DHCP-Client-Dienst voraussetzt (was aber nirgendwo so wirklich dokumentiert ist). Da ich DHCP bei mir zuhause standardmäßig deaktiviert habe kam jedes mal ne Fehlermeldung.
Aaaaaaalso, Skript Nummer 2, getestet und funktioniert tadellos:

@echo off

echo ############################################## 
echo ####                                      #### 
echo ####          IP-AUSWAHLSKRIPT            #### 
echo ####          ================            #### 
echo ####                                      #### 
echo ####       VON: Godmode_On                #### 
echo ####                                      #### 
echo ####   WICHTIG: Das Skript IMMER          #### 
echo ####            als Admin starten!        #### 
echo ####                                      #### 
echo ############################################## 
echo ####                                      #### 
echo ####         Wo bist du grade?            #### 
echo ####                                      #### 
echo ####   1 = Internet (feste IP)            #### 
echo ####   2 = lokales Netz (feste IP)        #### 
echo ####   3 = woanders (autom. IP)           #### 
echo ####                                      #### 
echo ####   0 = Abbrechen                      #### 
echo ####                                      #### 
echo ############################################## 

:auswahl
set /P wahl=Auswahl: 
if /i "%wahl%"=="1" goto:internet
if /i "%wahl%"=="2" goto:lan
if /i "%wahl%"=="3" goto:auto
if /i "%wahl%"=="0" goto:exit
echo Falsche Auswahl. Tipp: Weniger saufen. :-P
goto:auswahl

:internet
sc config "Dhcp" start= auto
net start "Dhcp"
netsh interface ipv4 set address "WLAN" static 192.168.178.55 255.255.255.0 192.168.178.1 1
netsh interface ipv4 set dns "WLAN" static 192.168.178.1
net stop "Dhcp" 
sc config "Dhcp" start= disabled
goto:auswahl 

:lan
sc config "Dhcp" start= auto
net start "Dhcp"
netsh interface ipv4 set address "WLAN" static 192.168.0.200 255.255.255.0 none
netsh interface ipv4 set dns "WLAN" static none
net stop "Dhcp" 
sc config "Dhcp" start= disabled
goto:auswahl 

:auto 
sc config "Dhcp" start= auto
net start "Dhcp"
netsh interface ipv4 set address "WLAN" dhcp
netsh interface ipv4 set dns "WLAN" dhcp
goto:auswahl 

:exit 
goto:eof




Was passiert nun hier?:
Zuerst wird die Startart des DHCP-Dienstes auf "automatisch" gestellt, weil man den Dienst nicht gestartet bekommt wenn er komplett deaktiviert ist. Danach wird der Dienst gestartet , die IP-Einstellungen werden vorgenommen, und der Dienst wieder gestoppt. Je nachdem ob man mit fester oder automatischer IP unterwegs ist wird zuletzt noch die Startart wieder zurückgestellt.

Auf die oben gezeigte Art und Weise können natürlich beliebig viele IP-Profile verwendet werden. Das Skript funktioniert ab WinXP (evtl auch mit früheren Versionen). Ich finds ganz nützlich, so ohne externe Tools, deswegen lass ichs mal hier als Vorlage stehen.

LG und Danke an alle!

Godmode

Dieser Beitrag wurde von godmode_on bearbeitet: 10. November 2011 - 01:35

Immersion is when you´re playing Condemned and your cat suddenly jumps onto your lap, only to be immediately launched off by a reflexive cannon-like blast of terrified piss.

- Ben "Yahtzee" Croshaw, ZEROPUNCTUATION
1

#4 Mitglied ist offline   mott 

  • Gruppe: aktive Mitglieder
  • Beiträge: 31
  • Beigetreten: 01. September 07
  • Reputation: 0

geschrieben 10. November 2011 - 00:43

Vielleicht hilft Dir das Programm weiter: Mobile Net Switch. Ich nutze das in verschiedenen Umgebungen, es bietet zahlreiche Einstellmöglichkeiten und ich bin sehr zufrieden damit. Ist aber Shareware. Dann gibt's auch noch NetSetMan, scheint auch ganz gut zu sein, ist Freeware, habe aber keine Erfahrungen damit.

Gruß

Michael
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0