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 Shell: IP-Adresse in Oktett hintereinander ausgeben

Mitglied: alaim89

alaim89 (Level 1) - Jetzt verbinden

23.05.2014, aktualisiert 28.05.2014, 2096 Aufrufe, 6 Kommentare

Hallo liebe Gemeinde,

ich versuche mich gerade in Bash/Shell scripting einzuarbeiten bzw. meine ersten schritte in der Programmierung. Der ein oder andere kennt das vielleicht, man spielt ein bisschen rum und erstellt sinnlose, aber dennoch lehrreiche Skripte/Programme :D (Ich hoffe das, dass auch Ihr so seht).

Bei mir ist das gerade so, ich möchte ein Bashskript schreiben, das mir die die IP-Adresse in Oktetts ausgibt.
Beispiel:

Als Eingabe gebe ich die Adresse so ein: 1921681780
Genau diese möchte ich in der Ausgabe als Oktett Darstellung haben: 192.168.178.0

Desweiteren möchte ich einen Bereich mit einbauen, wo ich genau sagen kann, gebe die Adresse bis 22 aus.
Beispiel:
zaehler -> 22, 192.168.178.1 192.168.178.2 usw. bis 192.168.178.23.

Vom Konstrukt her, habe ich mir gedacht, das auf jeden Fall if Entscheidungen eingebaut werden müssen, für die Überprüfung ob es sich um zahlen oder Buchstaben handelt die mit angegeben worden sind. Weiterhin soll die Fallunterscheidung nur akzeptieren wenn es sich tatsächlich um zahlen handelt.

Bei dem hochzählen habe ich an eine for-schleife gedacht. Diese soll auch nur ausgeführt werden, wenn tatsächlich in der Fallunterscheidung, es sich nur um zahlen handelt.


Meine Schwierigkeit die ich gerade habe, ist das ich nicht genau weiß wie ich das mit den Oktetten hinbekomme wie ober erwähnt.
Meine Überlegung dazu ist, ob man die Möglichkeit hat, wenn ich den Zahlenbereich eingebe, ob diese temporär gespeichert werden kann (sollte gehen) diese dann aber bei einem Aufruf ( einer Funktion ?, String-Manipulation (sed,awk,?) ) einsetzen kann und die dann als Oktett ausgegeben wird.


Ich bin noch am Anfang der Programmierung, deswegen schont trotzdem nicht mit Kritik beim falschen Ausdruck oder nicht ganz so galanter Überlegungen.


beste Grüße


alaim89
Mitglied: rubberman
23.05.2014, aktualisiert um 18:00 Uhr
Hallo alaim89,

mal unabhängig von Sprache und Umsetzung, nach welcher Regel wird denn
1921681780
als
192.168.178.0
und nicht etwa als
192.168.17.80
interpretiert?

Grüße
rubberman
Bitte warten ..
Mitglied: Lochkartenstanzer
23.05.2014, aktualisiert um 18:02 Uhr
Zitat von alaim89:

Ich bin noch am Anfang der Programmierung, deswegen schont trotzdem nicht mit Kritik beim falschen Ausdruck oder nicht ganz so
galanter Überlegungen.

Warum das komische Einagabeformat? wenn man eine IP-Adresse als dezimalzahl eingibt sollte man die auch als dezimalzahl zwischen 0 und 4 Mio. (2^32-1) interpretieren udn dementsprechend behandeln. oder der benutzer soll die Punkte mittippen, so daß man daraus ersehen kann, ob die nun als dezimalzahl oder als mehrere bytes interpretiert werden soll.

lks

PS: Deine eingabemethode kann zu mehrdeutigkeiten führen: Welche IP-Adresse bezeichenet 1111111111?
Bitte warten ..
Mitglied: alaim89
23.05.2014 um 18:18 Uhr
Hi @rubberman,
um auf die Interpretation zu kommen, da habe ich nicht zu ende gedacht , da habt ihr beide recht @lks.

Bei der sonstigen Überlegung, wisst ihr da, wie ich die Möglichkeit besitze, das die IP-Adresse nacheinander ausgegeben wird?
Ist die Umsetzung überhaupt so möglich, wie ich es oben beschrieben habe ??



beste Grüße

alaim89
Bitte warten ..
Mitglied: Lochkartenstanzer
23.05.2014 um 18:24 Uhr
Zitat von alaim89:

Ist die Umsetzung überhaupt so möglich, wie ich es oben beschrieben habe ??


Im Prinzip ja.

lks
Bitte warten ..
Mitglied: colinardo
LÖSUNG 23.05.2014, aktualisiert 16.12.2014
Hallo alaim89,
hier mal ein Gerüst zum Basteln. Denke davon kannst du eventuell was lernen
(Script erhebt keinen Anspruch auf Vollständigkeit)
01.
#!/bin/bash 
02.
# Regex für die IP-Adresse / Bereich 0.0.0.0 - 255.255.255.255 
03.
ip_regex="^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$" 
04.
 
05.
# Regex für die Bereichseingabe / Bereichsformat [0-255]-[0-255] 
06.
bereich_regex="^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])-(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$" 
07.
 
08.
echo "Bitte geben sie eine IP-Adresse ein:" 
09.
# Eingabe in Variable speichern 
10.
read ip 
11.
# IP prüfen 
12.
if [[ $ip =~ $ip_regex ]]; then 
13.
	echo "Bitte geben sie einen Bereich ein der ausgeben werden soll (im Format: 1-22)" 
14.
	# Host-Adressbereich in Variable speichern 
15.
	read bereich 
16.
	# Bereichseingabe prüfen 
17.
	if [[ $bereich =~ $bereich_regex ]];then  
18.
		# IP-Adresse auf Netz reduzieren (im Beispiel Maske 255.255.255.0) 
19.
		netz=${ip%.*} 
20.
		# von bis aufsplitten 
21.
		from=${bereich%-*} 
22.
		to=${bereich#*-} 
23.
                # prüfen ob Endbereich kleiner als Startbereich ist 
24.
                if [[ $to -lt $from ]]; then echo "Endbereich ist kleiner als Zielbereich!"; exit; fi 
25.
		# IP-Adressen sequentiell auflisten 
26.
		eval echo $netz.{$from..$to} | tr " " "\n" 
27.
	else	# Eingabeformat des Bereichs falsch 
28.
		echo "Format des Bereichs falsch!" 
29.
		exit 
30.
	fi 
31.
else	# Eingabeformat der IP falsch 
32.
	echo "IP hat nicht das korrekte Format!" 
33.
	exit 
34.
fi
Auf das wesentliche Reduziert: Einfache Auflistung von IP-Adressen in einem Bereich kannst du auf der Kommandozeile mit Hilfe von Brace Expansion so machen:
echo 192.168.1.{1..254} | tr " " "\n"
Damit lassen sich schöne Dinge anstellen

Viel Erfolg
Grüße Uwe
Bitte warten ..
Mitglied: alaim89
24.05.2014 um 14:29 Uhr
HI @colinardo,

erstmal danke für das Gerüst, das du bereitgestellt hast. Im laufe des Tages werde ich es mal genauer untersuchen.
Die Idee mit der Brace Expansion ist echt der Hammer :D . Das kannte ich noch gar nicht.


beste Grüße


alaim89
Bitte warten ..
Ähnliche Inhalte
Windows Server

IIS Logs anonymisieren IP-Adresse 3. Oktett 4. Oktett

gelöst Frage von EmheonivekWindows Server7 Kommentare

Hallo, gibt es eine fertige Lösung von Microsoft z.B. ein ISAPI-Filter, um das 3. und 4. Oktett einer IP-Adresse ...

Router & Routing

IP-Subnetze und IP-Adresse

gelöst Frage von lixus99Router & Routing2 Kommentare

Moin, ich habe das Netz aus dem Bild. Wenn man von C aus die kürzesten Wege zu den 5 ...

Windows Server

IP Adresse sofort blacklisted?

Frage von BigSnakeyeWindows Server36 Kommentare

Hallöchen! Zugeben ich muss - ich weiß nicht wo ich genau mit dieser Frage hin soll. Auf dem Server ...

Netzwerke

IP-Adresse Verbergen oder Verstecken

Frage von Daoudi1973Netzwerke15 Kommentare

Hallo alle, meine Frage heute: was für Vorteile hat man, wenn man die IP-Adresse verbergt oder versteckt? Gruß Daoudi1973

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 1 TagHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Router & Routing
Mikrotik: Routing zwischen Interfaces mit Geräten ohne Gateway
Frage von TonLichtVideoRouter & Routing17 Kommentare

Hallo zusammen, ich komme aus dem Veranstaltungstechnik Bereich und habe zwei Netze um verschiedene Hardware zu Remoten. CONTROL1 192.168.1.0/24 ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...