Donnerstag, 20. Dezember 2012VergrepptTrackbacks
Trackback-URL für diesen Eintrag
Keine Trackbacks
Kommentare
Ansicht der Kommentare:
(Linear | Verschachtelt)
Erinnert mich an eine Aufgabe die damals in einer LPIC Übung war.
Gebe sämtliche IP Adressen aller Dateien von /etc aus. Da hat sogar unser "Linux Gott" (und der Herr verdient diese Bezeichnung wirklich!) gesagt, ne das ist mir zu dumm. Irgendwann ne Stunde später kam einer und hatte eine gefühlt 5 Milliarden Zeichen lange Kommandozeile eingetippt mit der es funktioniert hat. Nebenbei. Ich HASSE RegEx. Nuff said!
find /etc/ -type f -exec grep -H "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" {} \;
Weil das find mit -type f auf echte, reguläre Dateien begrenzt. Ein grep -r würde auch Symlinks nach sonstwohin erwischen, kommt nicht aus rekursiven Verzeichnisschleifen raus und falls es jemand geschafft hat, unter /etc/irgendwas auf ein blockdevice oder etwas ähnlich garstiges zu versymlinken (den gesamten Hauptspeicher vielleicht), dann wird's eklig. Echt eklig.
Frei aus dem Gedächnis wäre dann aber ein:
find /etc/ -type f -o | xargs -0 grep -H "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" Deutlich effektiver, mal abgesehen, dass die RegExp nicht ganz passt. Übrigesn IPv6 Matchen... das ist Horror...
Okay, erleuchte mich, warum soll es effektiver sein, eine Pipe und ein zusätzliches Executable (xargs) ins Spiel zu bringen?
Und was passt an der RegEx nicht? (okay, ist schon spät, vielleicht sehe ich es vor Müdigkeit nicht)
Das Regex passt auch auf 999.999.999.999 z.B. und -exec erzeugt pro fund einen grep Prozess, während xargs nur je max Argumente ein grep erzeugt.
Genau die selben Probleme hatten wir auch
Es durften aber halt ausschließlich mögliche IP Adressen sein. Aber ich bin eh keine RegEx leuchte.
Ich benutze meist auch nur die genannte vereinfachte Form für IPv4, meistens reicht das aus.
Hier mal die RegEx für IPv6 (?=\b)((([0-9a-f]{1,4}:){1,1}(:[0-9a-f]{1,4}){1,6})|(([0-9a-f]{1,4}:){1,2}(:[0-9a-f]{1,4}){1,5})|(([0-9a-f]{1,4}:){1,3}(:[0-9a-f]{1,4}){1,4})|(([0-9a-f]{1,4}:) {1,4}(:[0-9a-f]{1,4}){1,3})|(([0-9a-f]{1,4}:){1,5}(:[0-9a-f]{1,4}){1,2})|(([0-9a-f]{1,4}:){1,6}(:[0-9a-f]{1,4}){1,1})|((([0-9a-f]{1,4}:){1,7}|:):)|(:(:[0-9a-f]{1,4}){1,7})|(((([0-9a- f]{1,4}:){6})(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}))|((([0-9a-f]{1,4}:){5}[0-9a-f]{1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)) {3}))|(([0-9a-f]{1,4}:){5}:[0-9a-f]{1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|(([0-9a-f]{1,4}:){1,1}(:[0-9a-f]{1,4}){1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\ d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|(([0-9a-f]{1,4}:){1,2}(:[0-9a-f]{1,4}){1,3}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|(([0-9a-f]{1,4}:){1,3}(:[0-9 a-f]{1,4}){1,2}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|(([0-9a-f]{1,4}:){1,4}(:[0-9a-f]{1,4}){1,1}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0 -1]?\d?\d)){3})|((([0-9a-f]{1,4}:){1,5}|:):(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|(:(:[0-9a-f]{1,4}){1,5}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0- 4]\d|[0-1]?\d?\d)){3}))(?=\b)
Da kriegt man ja Kopfschmerzen von
Wie gut dass ich solche Konstrukte nie brauche, und die IPs immer auf einem Silbertablett gereicht bekomme. Oder eine Funktion hab die das für mich kann
oO... Wenn man da einen Punkt vergisst, ist man am Arsch
Ich vergesse bei PHP ja schon aus Tradition ständig die Semikolon.
|
IPv6 oder IPv4?You are here via
![]() SucheKommentareMi, 19.06.2013 20:48
Ja. Ich habe das Problem hinte
r mir
Mi, 19.06.2013 18:13
Nein Yahoo hat ihn eingestellt
. Die leiten jetzt auf den Übe
rsetzer von BING weiter.
Mi, 19.06.2013 14:09
Gibts ne einfache Möglichkeit
das Debian 6 Image auf 7 zu up
graden? Hatte das vor ein paar
Wochen auf meinem Root [...]
Do, 13.06.2013 20:22
Ich würde sie auf meinem Apfel
nutzen!
Funktionen:
push
bei Erreichbarkeitsausfall (mü
sste allerdings von auße [...]
Mi, 12.06.2013 20:15
Ja, und auch an deren Rückkehr
.
http://www.heise.de/newst
icker/meldung/Angriff-der-Gesc
hlechtsnocken-56137.html [...]
Mi, 12.06.2013 17:28
was allerdings (prinzipiell) r
ichtig ist: die deutsche Bezei
chnung für Stack ist (bzw. war
mal) "Stapel" bzw. auch [...]
Mi, 12.06.2013 09:59
IBM redet von Kelleradressregi
ster und Kellerspeicher.
Mo, 10.06.2013 18:19
Google Translate?
Oder eventu
ell Babelfish (gibt's den noch
?).
Mo, 10.06.2013 15:22
Gerüchten zu folge übersetzte
IBM "no space left on device"
einstmal mit "kein Weltraum li
nks am Gerät"!
Mo, 10.06.2013 14:51
Schonmal mit dem WebJetAdmin v
on HP gearbeitet? Der ist durc
hgehend so übersetzt.
Impressum & Werbung |