91630
Goto Top

Script zum wechseln der IP-Adresse mehrerer IP-Adressbereiche

Im Unternehmen sollen mehrere IP-Adressbereiche umgestellt werden. Nun bastel ich an einem Script was das den alten Adressbereich ausliest und je nach Ergebnis eine neue IP Adresse setzt.

Hallo zusammen,

ich möchte in meinem Unternehmen Computer von einem IP-Adressbereich in einen anderen umziehen. Dabei ist es wichtig das ein gewisses Schema eingehalten wird. Damit meine ich:
Alte IP: 192.168.1.x soll in den Bereich 192.168.100.x überführt werden.
Alte IP: 192.168.2.x soll in den Bereich 192.168.200.x überführt werden.
Alte IP: 192.168.3.x soll in den Bereich 192.168.300.x überführt werden, usw.

Dafür habe ich mir ein Script überlegt, welches so aber noch nicht ganz rund funktioniert:
for /F "tokens=13,*" %%i in ('ipconfig^|find "IP-Ad"') do set IP=%%j   
echo %IP%>c:\ip.txt


echo %IP%
for /f "tokens=1 delims=." %%a in (C:\ip.txt) do set ip1=%%a  
echo %ip1%
for /f "tokens=2 delims=." %%a in (C:\ip.txt) do set ip2=%%a  
echo %ip2%
for /f "tokens=3 delims=." %%a in (C:\ip.txt) do set ip3=%%a  
echo %ip3%
for /f "tokens=4 delims=." %%a in (C:\ip.txt) do set ip4=%%a  
echo %ip4%


if %ip3%==1 ( goto gw100 )
if %ip3%==2 ( goto gw200 )
if %ip3%==3 ( goto gw300 )


:gw100 
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.100.%ip4% 255.255.255.0 192.168.100.1 1  

:gw200 
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.200.%ip4% 255.255.255.0 192.168.200.1 1  

:gw300 
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.300.%ip4% 255.255.255.0 192.168.300.1 1  
Das Problem ist das jede Zeile vom Script abgearbeitet wird, d.h. in diesem Fall wird die IP-Adresse dreimal hintereinander geändert.
Was mache ich da genau falsch?


Vielen Dank für Eure Hilfe

Stefan

Content-Key: 145830

Url: https://administrator.de/contentid/145830

Printed on: April 23, 2024 at 13:04 o'clock

Mitglied: 60730
60730 Jun 28, 2010 at 16:39:51 (UTC)
Goto Top
moin,
Zitat von @91630:
for /F "tokens=13,*" %%i in ('ipconfig^|find "IP-Ad"') do set IP=%%j   
echo %IP%>c:\ip.txt
echo %IP%

for /f "tokens=1 delims=." %%a in (C:\ip.txt) do set ip1=%%a  
echo %ip1%
for /f "tokens=2 delims=." %%a in (C:\ip.txt) do set ip2=%%a  
echo %ip2%
for /f "tokens=3 delims=." %%a in (C:\ip.txt) do set ip3=%%a  
echo %ip3%
for /f "tokens=4 delims=." %%a in (C:\ip.txt) do set ip4=%%a  
echo %ip4%


if %ip3%==1 ( goto gw100 )
if %ip3%==2 ( goto gw200 )
if %ip3%==3 ( goto gw300 )
echo dieser Rechner ist in einem IP Bereich, fuer den dieses Script nicht erdacht wurde
echo ich breche ab....
pause
goto end 
 
:gw100 
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.100.%ip4% 255.255.255.0 192.168.100.1 1  
echo hier fehlt entweder
echo exit 
echo oder
echo goto end

:gw200 
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.200.%ip4% 255.255.255.0 192.168.200.1 1  
 
:gw300 
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.300.%ip4% 255.255.255.0 192.168.300.1 1  
:end
ping %computername% -n1 -a >c:\ip.txt


wobei das nur deine Version um den Bock beseitigt ist. Ich würds ganz anders machen.....


Gruß
Mitglied: 91630
91630 Jun 28, 2010 at 17:46:16 (UTC)
Goto Top
Mhm danke.
Ich arbeite zum ersten Mal mit If-Bedinungen. Also kann ich für mich festhalten: Jeder Einstiegspunkt braucht eine End-Anweisung?
Na fürs erste Mal gehts ja dann face-wink

Wie würdest Du den Wechsel vornehmen?
Mitglied: 60730
60730 Jun 28, 2010 at 18:44:38 (UTC)
Goto Top
Zitat von @91630:
Mhm danke.
Ich arbeite zum ersten Mal mit If-Bedinungen. Also kann ich für mich festhalten: Jeder Einstiegspunkt braucht eine End-Anweisung?
ja, aber andersherum, nicht jede if anweisung braucht einen einstiegspunkt.
Und auch das ist nur ein Weg, von denen es viele gibt......
if %ip3%==1 netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.100.%ip4% 255.255.255.0 192.168.100.1 1  
if %ip3%==2 netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.200.%ip4% 255.255.255.0 192.168.200.1 1  
if %ip3%==3 netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.300.%ip4% 255.255.255.0 192.168.300.1 1  
Na fürs erste Mal gehts ja dann face-wink

Wie würdest Du den Wechsel vornehmen?
Anhand der Mac Adresse face-wink Aber jetzt nehme ich erstmal feste Nahrung auf...

Gruß
Member: 2hard4you
2hard4you Jun 28, 2010 at 19:14:19 (UTC)
Goto Top
Zitat von @91630:

Alte IP: 192.168.3.x soll in den Bereich 192.168.300.x überführt werden, usw.



Moin,

sorry, hast Du IPv5? - eine 300er bei maximal 255

Respekt

wie wäre es mit, sich mal hinsetzen und erst mal nachdenken??

Danke

24
Member: Dani
Dani Jun 28, 2010 at 19:25:02 (UTC)
Goto Top
Hi Stefan,
DHCP Funktionsumfang mit Reservierung ist keine Option?! Macht vieles einfacher... auch in Zukunft bei OS-Installationen über PXE oder Software (z.B. Matrix42, CA, etc...).


Grüße,
Dani
Mitglied: 91630
91630 Jun 29, 2010 at 07:20:32 (UTC)
Goto Top
@Timo Beil
Danke, klappt alles supi.

@2hard4you
Du Nase! Das ist doch ein Beispiel um nicht meinen wahren Adressraum zu nennen.

@Dani
Leider nein. Wir sind durch eine Unternehmensrichtlinie gezwungen keinen DHCP einzusetzen.