Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst IP Adressen auslesen, kopieren, modifizieren

Mitglied: eu-admin

eu-admin (Level 1) - Jetzt verbinden

18.08.2006, aktualisiert 24.08.2006, 5199 Aufrufe, 9 Kommentare

Hallo,

ich habe ein Problem bei der automatischen Abarbeitung folgenden Problems:

In einer semikolon-getrennten csv-Datei mit Netzwerkomponenten stehen deren IDs sowie im

Idealfall zwei IP-Adressen.

Leider ist der Idealfall relativ selten.

In dem ersten IP-Adressfeld sollen ausschließlich IP-Adressen stehen, deren 2. Oktett

größergleich 144 ist. Bei den IPs, bei denen dies nicht der Fall ist, steht in der Regel im

2. Oktett eine 136. Diese IPs sollen in das Feld IP2 kopiert werden. Ausserdem soll in IP1

die Umrechnung dieser Adresse nach folgendem Muster erfolgen:

10.(136+8).(3.Oktett+16).(4.Oktett)

Hier nun noch ein Auszug aus dieser Datei:

Search code;IP Address;IP Adresse 2
TESTCI;10.145.19.101;
R6504;10.144.79.33;
R88001;10.144.187.209;
R7436;10.144.181.49;
R7435;10.144.182.177;
R6189;10.136.43.97;10.144.75.97
R7391;10.144.161.49;
R7344;10.144.178.161;
R7338;10.144.162.225;
R4503;10.144.113.1;
R6213;10.144.78.97;
R1098;10.144.137.33;
R1030;10.144.89.161;
R4591;10.144.136.193;
R6511;10.144.120.225;
R7573;10.144.161.241;
R7253;10.144.162.81;
R4051;10.144.110.1;
R1051;10.136.59.225;

Vielen Dank

Christian
Mitglied: 6890
18.08.2006 um 13:41 Uhr
hallo,

ich denk mal in perl müsste das relativ einfach zu lösen sein oder bist du auf batch/shell angewiesen??

mfg godlike P
Bitte warten ..
Mitglied: eu-admin
18.08.2006 um 13:47 Uhr
Hallo,

Angewiesen nicht, aber mit perl kenne ich mich noch weniger aus als batch.

Christian
Bitte warten ..
Mitglied: 6890
18.08.2006 um 13:56 Uhr
kann dir ja helfen wennde willst.

mfg
Bitte warten ..
Mitglied: AxelHahn
18.08.2006 um 14:26 Uhr
Hallo,

so vielleicht en Ansatz mit dem du weiterkommst:

01.
@echo off
02.
set csvfile=ips.csv
03.
for /F "tokens=1,2,3 delims=;" %%a in (%csvfile%) do call :testme %%a %%b %%c
04.
pause
05.
goto end
06.

07.
:testme
08.
set name=%1
09.
set ip1=%2
10.
set ip2=%3
11.

12.
set ip1_A=
13.
set ip1_B=
14.
set ip1_C=
15.
set ip1_D=
16.
for /F "tokens=1-4 delims=." %%j in ('echo %ip1%') do (set ip1_A=%%j&& set ip1_B=%%k&& set ip1_C=%%l&& set ip1_D=%%m)
17.

18.
set /a ip2_C=%ip1_C%+16
19.
if "%ip1_B%"=="144" (echo %name%;%ip1%;10.144.%ip2_C%.%ip1_D%) else echo ERROR %name% - 2. Oktett in %ip1% ist nicht 144
20.
goto end
21.

22.
:end
zuerst loopst du über deine CSV-Datei.
Im Label testme wird die erste IP in 4 Blöcke zerlegt und in einzelne Variablen gepackt.
Der C-Block der 2. IP wird berechnet.
Den 2. Block von der ersten IP prüfst du, ob er 144 ist, wenn ja, bisbst du alle Zeilen aus.

Falls du alles in einer Datei brauchst, leitest du die Ausgabe in eine Datei mit ">>" um.


Viele Grüsse
-= Axel =-
Bitte warten ..
Mitglied: Biber
18.08.2006 um 18:27 Uhr
Moin eu_admin,

aus Spass nochmal eine etwas kompaktere Alternativ-Batchlösung.
In der Praxis würde ich aber eine etwas lesbarere (wie die von AxelHahn) vorziehen.

Nur um zu zeigen, dass es auch etwas kürzer geht..
01.
::----sortIps.bat ------ Parameter1= Name der CSV-Datei
02.
@echo off & setlocal enableDelayedExpansion
03.
(set /p header=<%1) && @echo !header!
04.
For /f "skip=1 delims=; tokens=1-3" %%i  in (%1) do (
05.
  if [%%k] Neq [] ( @If %%k GTR %%j (echo %%i;%%k;%%j) else echo %%i;%%j;%%k;) Else (
06.
    For /f "tokens=1-4 delims=." %%a in ("%%j") do (
07.
      IF %%b GEQ 144 ( echo %%i;%%a.%%b.%%c.%%d;)  Else (
08.
         (Set /a x=%%b+8) && (Set /a y=%%c+16) && (Echo %%i;%%a.!x!.!y!.%%b;%%a.%%b.%%c.%%d;
09.
))))) 
Output auf Konsole/im 2 Schritt in neue Datei SortIps.csv:
01.
$cmd$sortips ips.csv
02.
Search code;IP Address;IP Adresse 2
03.
TESTCI;10.145.19.101;
04.
R6504;10.144.79.33;
05.
R88001;10.144.187.209;
06.
R7436;10.144.181.49;
07.
R7435;10.144.182.177;
08.
R6189;10.144.75.97;10.136.43.97
09.
R7391;10.144.161.49;
10.
R7344;10.144.178.161;
11.
R7338;10.144.162.225;
12.
R4503;10.144.113.1;
13.
R6213;10.144.78.97;
14.
R1098;10.144.137.33;
15.
R1030;10.144.89.161;
16.
R4591;10.144.136.193;
17.
R6511;10.144.120.225;
18.
R7573;10.144.161.241;
19.
R7253;10.144.162.81;
20.
R4051;10.144.110.1;
21.
R1051;10.144.75.136;10.136.59.225;
22.

23.
$cmd$sortips ips.csv >sortIps.csv
Gruß
Biber
Bitte warten ..
Mitglied: eu-admin
21.08.2006 um 13:37 Uhr
Hallo Zusammen,

vielen Dank für die vielen Ideen. Eine kleine Änderung benötige ich aber dennoch.
Die veränderten Daten müssen wieder in eine Datei (vorzugsweise dieselbe) geschrieben werden und zwar so, dass die erste IP größer ist als die zweite.

Christian
Bitte warten ..
Mitglied: Biber
21.08.2006 um 13:58 Uhr
Moin eu_admin,

bei meinem Script kannst Du dann den Aufruf ändern von:
01.
sortips ips.csv >sortIps.csv
...in...
01.
sortips ips.csv >sortIps.csv
02.
Copy /y sortIps.csv Ips.csv
...aber erst, wenn es ausgiebig getestet ist
Ich würde auf jeden Fall die Ur-Datei ips.csv nur lesen und in eine andere Datei schreiben.

Gruß
Biber
Bitte warten ..
Mitglied: Biber
23.08.2006 um 15:32 Uhr
Moin eu_admin,

noch mal eine Verfeinerung mehr auf dem Weg zu Deiner Lösung.
Wenn die gesammelten Anforderungen jetzt so aussehen:
1. IPs im Bereich 10.145.xxx.xxx soll keine Änderung vorgenommen werden. Die IP2 soll gleich der IP1 sein.

2. IPs im Bereich 10.144.xxx.xxx soll die Original-IP in IP1 gesetzt werden und das ausgerechnete Equivalent in IP2 gesetzt werden

3. Wenn IP1 im Bereich 10.136.xxx.xxx liegt, soll die IP1 auf die ausgerechnete 10.144.xxx.xxx-Adresse gesetzt werden und dier ursprüngliche IP1 in IP2 kopiert werden.

Letztendlich soll die "große" IP immer in IP1 sein.


Dann macht dieser Schnipsel....
01.
::-------snipp Sortips2.bat
02.
@echo off & setlocal enableDelayedExpansion & if [%1]==[] (echo Keine IP-Datei angegeben.) & goto :eof
03.
(set /p header=<%1) && @echo !header!
04.
For /f "skip=1 delims=; tokens=1-3" %%i  in (%1) do (  
05.
  if [%%k] Neq [] ( @If %%k GTR %%j (echo %%i;%%k;%%j) else echo %%i;%%j;%%k;) Else (
06.
    For /f "tokens=1-4 delims=." %%a in ("%%j") do (
07.
      IF %%b EQU 145 ( echo %%i;%%j;%%j)  Else (
08.
      IF %%b EQU 144 ((Set /a x=%%b-8) && (Set /a y=%%c-16) && echo %%i;%%j;%%a.!x!.!y!.%%d;)  Else (
09.
      IF %%b EQU 136 ((Set /a x=%%b+8) && (Set /a y=%%c+16) && Echo %%i;%%a.!x!.!y!.%%d;%%j))))))
10.
::-------snapp Sortips2.bat
....dieses Ergebnis:
01.
sortips2 ips.txt
02.
Search code;IP Address;IP Adresse 2
03.
TESTCI;10.145.19.101;10.145.19.101
04.
R6504;10.144.79.33;10.136.63.33;
05.
R88001;10.144.187.209;10.136.171.209;
06.
R7436;10.144.181.49;10.136.165.49;
07.
R7435;10.144.182.177;10.136.166.177;
08.
R6189;10.144.75.97;10.136.43.97
09.
R7391;10.144.161.49;10.136.145.49;
10.
R7344;10.144.178.161;10.136.162.161;
11.
R7338;10.144.162.225;10.136.146.225;
12.
R4503;10.144.113.1;10.136.97.1;
13.
R6213;10.144.78.97;10.136.62.97;
14.
R1098;10.144.137.33;10.136.121.33;
15.
R1030;10.144.89.161;10.136.73.161;
16.
R4591;10.144.136.193;10.136.120.193;
17.
R6511;10.144.120.225;10.136.104.225;
18.
R7573;10.144.161.241;10.136.145.241;
19.
R7253;10.144.162.81;10.136.146.81;
20.
R4051;10.144.110.1;10.136.94.1;
21.
R1051;10.144.75.225;10.136.59.225
Allerdings ist noch offen, was passieren soll, wenn das 2. Ip-Oktett weder 145 noch 144 noch 136 ist... im Moment fällt es einfach weg.

Gruß
Biber
Bitte warten ..
Mitglied: eu-admin
24.08.2006 um 08:50 Uhr
Moin,

an alle die mir geantwortet haben, vielen Dank. Die Lösung von Biber hat dann wunderbar funktioniert.

MfG

Christian
Bitte warten ..
Ähnliche Inhalte
Windows Server
Server 2012 DNS AD DHCP. IP Adress Frage
Frage von maxrutzWindows Server1 Kommentar

Momentan hab ich zum Testen ein Server zuhause mit ESXI und winserver 2012. Ich habe ein Test Netzwerk gemacht ...

Router & Routing

Zugriff auf NAS in anderem IP-Adress Bereich

gelöst Frage von TorstenhofRouter & Routing12 Kommentare

Hallo liebe Forumsmitglieder Ich habe folgendes Problem mit einer Netzwerkkonfiguration: Netzwerk 1: IP Adressen 192.168.0.x Arbeitsplatzrechner und NAS Zugriff ...

LAN, WAN, Wireless

MAC Adress Finder bzw. Scanner (legal)

gelöst Frage von SchwarzerRieseLAN, WAN, Wireless9 Kommentare

Hallo zusammen, ich habe in meinem Heimnetzwerk (mit einer FritzBox als Modem & Router) folgendes "Problem": Irgendein Nachbar besitzt ...

Windows Tools

Cobra Adress Plus und Outlook

gelöst Frage von hartmann0Windows Tools8 Kommentare

Hallo, da ich durch Googlen leider einfach nichts finde, habe ich mich entschlossen, mich einfach mal hier an das ...

Neue Wissensbeiträge
Windows Server

Zähe Update-Installation auf Windows Server 2016

Information von kgborn vor 2 TagenWindows Server4 Kommentare

Mir sind in der Vergangenheit immer wieder Beschwerden von Admins unter die Augen gekommen, die sich über die doch ...

Humor (lol)
Turnschuhe per Firmware lahmlegen
Information von Henere vor 2 TagenHumor (lol)8 Kommentare

Und was kommt demnächst ? Bekomme ich kein Klopapier mehr, weil der Spender einem DDOS unterliegt ? :-) Ich ...

Sicherheit

Sicherheitsrisiko in WinRAR und Co. durch Schwachstelle in UNACEV2.DLL

Information von kgborn vor 2 TagenSicherheit

In der seit 2005 nicht mehr aktualisierten Bibliothek UNACEV2.DLL gibt es eine Path-Traversal-Schwachstelle. Diese ermöglicht es, bei ACE-Archiven Dateien ...

Internet

CDU Propaganda: Urheberschutz im Internet - Ende des digitalen Wild-West

Information von Frank vor 3 TagenInternet6 Kommentare

Hallo Administratoren, aus einem Kommentar heraus habe ich folgenden Beiträge von Herr Sven Schulze und Axel Voss (beide CDU ...

Heiß diskutierte Inhalte
Windows Tools
Dateiname Automatisch auf PDF Klartext oder als Barcode abdrucken
Frage von spongebob24Windows Tools29 Kommentare

Hallo Zusammen, habe eine tolle Anforderung bekommen. Ich sollte auf mehrere PDF Dateien Automatisch einen Stempel anbringen lassen. Toll ...

Microsoft Office
MicroSoft und seine Lizenzen
Frage von ZeppelinMicrosoft Office20 Kommentare

Wehrte Community, ich wende mich an die Community weil MicroSoft dazu keine Stellung nehmen möchte. Ich öffne mein Web-Browser ...

Hyper-V
Setup zu 2019 Hyper-V Coreserver gesucht
Frage von DerWoWussteHyper-V17 Kommentare

Moin. Ich habe unter die Möglichkeit, Hyper-V-Server 2012 R2 runterzuladen! Tolle Wurst, Microsoft! Nehme ich eine andere Quelle, nämlich ...

SAN, NAS, DAS
Thecus NAS 7700 Login nicht möglich
Frage von uridium69SAN, NAS, DAS13 Kommentare

Morgen allerseits Ich habe einem Kunden ein gebrauchtes Thecus 7700 NAS verkauft. Nun kann der Kunde sich nicht einloggen, ...