Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Tach

Ich habe in meiner grenzenlosen Langeweile ein kleines Programm geschrieben welches mir alle möglichen IP's generiert. Die Summe beläuft sich auf 255 hoch 4, wobei 0 mitgezählt wird, also es 256 Zeichen sind. Nun habe ich soweit alles fertig jedoch schockt mich etwas die Rechenzeit. Bei einem Test (15 als Basis nicht 255) hat er genau 40 min gebraucht. Dabei handelt es sich gerade mal um 65536 Möglichkeiten. Legt man das auf die 255 um, und errechnet die Zeit, komme ich auf folgendes Ergebnis: 2621440 min!!!!!! Was ja immerhin 4,9 Jahre sind. Nun Frage ich mich ob ich mich da verrechnet habe, bzw. ob es jemanden gibt der mir helfen kann. Denn 5 Jahre warten nur wegen 4,3 Mrd Ausgaben ist doch echt zu lang.

Also hat jemand eine Idee?? :confused:

mir erschliesst sich in mehrfacher hinsicht nicht der sinn der sache, da ohnehin nicht jede ip-adresse nutzbar ist. und der grund warum die ausgabe solange dauert, ist wahrscheinlich der, dass du die ausgabe irgendwohin (in einen buffer) schreibst, und ab irgendeinem zeitpunkt dann voller und voller wird und die generierung verzögert. nur geraten, nachdem du das mit basic machst und die ausgabe nicht nach /dev/null schiebst.

s'Amstel

  • Autor

Also.....

1. der Sinn

Naja, dann hab ich alle theoretischen IPs in einer Datei, kann sie ausdrucken und mir an die Wand hängen, etc. Es war ein Hirngespinnst meiner Langenweile das sich nun zu einem Projekt gemausert hat, das ich abschliessen möchte.

2. Speichern

Ich kann mit einer Variablen angeben nach wieviel Durchgängen er die Datei speichern soll und die "Merk"variable (mit den berechneten IPs ) wieder leert. So dass ich am Ende eine grosse Datei habe, die aus mehreren Teilstücken zusammen gespeichert wurde.

Meine CPU ist auch fleissig bei 100% aber der Faktor Zeit macht mir halt zu schaffen und wenn es da ne schnellere Alternative gibt, immer her damit.

Also.....

1. der Sinn

Naja, dann hab ich alle theoretischen IPs in einer Datei, kann sie ausdrucken und mir an die Wand hängen, etc. Es war ein Hirngespinnst meiner Langenweile das sich nun zu einem Projekt gemausert hat, das ich abschliessen möchte.

[OT]

Rechne doch mal aus, wieviel Papier und Drucker"tinte" du dafür brauchst :)

[/OT]

irgendwas ist bei dir falsch.

dieses Perl Script:

open (DATEI, ">ip.txt") ||die "error!";


for ($a=0; $a <= 255; $a++) {

	for ($b=0; $b <= 255; $b++) {

		for ($c=0; $c <= 255; $c++) {

			for ($d=0; $d <= 255; $d++) {

				print DATEI $a, ".", $b, ".", $c, ".", $d, "\n";

			}

		}

	}

}


close(DATEI);

braucht für den Bereich:

0.0.0.0 bis 0.32.255.255

genau: 0:00:15,23 Stunden. Also 15 Sekunden und 23 hundertstel.

die Datei hat dann: 2162688 Zeilen

und eine Größe von: 27.763.712 Bytes

von 0.0.0.0 bis 255.255.255.255 sind es 8*255 soviele daten.

also würde das Script: 8:39:51,04 Stunden

Die Datei hätte dann: 4429185024Zeilen

und wäre: 56860082176 Bytes gross. Also ca. 53GB gross.

Das wären: 63274072 Blätter auf einem Nadeldrucker (á 70 Zeilen)

das entspricht 63275 Kartons á 1000 Blatt

das sind ca. 790925,9 Kg (1 Karton á 1000 Blatt = 12,5Kg)

Also brauchst du zum ausdrucken 790 TONNEN Papier.

Also spinnerte Idee.

Nur mal so zum Spass.

Das wären: 63274072 Blätter auf einem Nadeldrucker (á 70 Zeilen)

das entspricht 63275 Kartons á 1000 Blatt

das sind ca. 790925,9 Kg (1 Karton á 1000 Blatt = 12,5Kg)

Also brauchst du zum ausdrucken 790 TONNEN Papier.

:bimei geil du hast es echt gemacht. :uli

Apropo Tinte:

auf unserem HP LJ 4300

Je Toner 20000Seiten:

würden das 3164 Toner sein.

Diese würden (aktuell 1 Toner á 78,04€) 246918,56€ kosten.

Ein doch etwas kostpieliges Unterfangen.

Ach ja das Papier würde (aktuell bei mir 1 Karton á 1,79€) 113262,25€ kosten.

(So kaufen wir es gerade ein.)

und noch was zum ausdrucken:

HP LJ 4300 = 48 Seiten pro minute

= 1318210 Minuten = 915 Tage 10 Stunden 10 Minuten.

:marine :marine :marine

Wenn die Angabe stimmt, das wir 63274072 Blätter brauchen:

21cm * 29,7cm = eine DIN-A4

1.328.755.512 cm * 1.879.239.938,4 cm = alle DIN-A4 Seiten zusammen

13.287.555,12 m * 18.792.399,384 m

132.875 km * 187.932 km (jeweils die Kommabeträge abgeschnitten)

Die Wand muss also demnach mindestens hundertsiebenundachzigtausendneunhundertdreiundzwanzig Kilometer lang und einhundertzweiunddreissigtausendachthundertfünfundsiebzig Kilometer hoch sein.

Wenn du so ein Zimmer findest, sag mir bescheid :)

/edit:

wir sehn schon, hierbei handelt es sich um ein wahres Lebenswerk.

du hast nen Fehler.

Du hast höhe und breite mal die Seitenzahl.

Du hast aber nur eine Richtung alle Blätter.

Allso alle Blätter aneinander geklebt würde eine Strecke von

21cm Breite und 187.932km Länge ergeben.

oh stimmt, sorry :hells:

  • Autor

for a=1 to 256

for b=1 to 256

for c=1 to 256

for d=1 to 256

ip= a+b+c+d

next

so in etwa sieht in Kurzform mein Prog aus. Auch lass ich immer mehrere Möglichkeiten hintereinander legen. Ich bin jedoch sehr beeindruckt wieviel Tinte und Blätter ich bräuchte. Und wenn ich an der Schriftgröße etwas bastele kann man da auch Raum gut machen.

Aber wieso eigentlich 8*255?? Wären es nicht 256 hoch 4????

(0.0.0.0 bis 0.32.255.255) * 8 * 255 = Gesamtzahl

du hast schon Recht mit dem 256^4

Wobei die IP ja nicht a+b+c+d ist.

Das ist eine Rechneoperation.

Kann es sein, das du dadurch viel Zeit verlierst.

Denn die Zeitunterschiede sind ja schon eklatant.

4,9 Jahre bei dir zu 8,xx Stunden bei mir.

also sowas wie ich oben auch geamcht habe.

dann wäre aber der unterschied im Tempo

Perl <-> Basic mehr als Extrem.

8,9h <-> 4,9 Jahre.

Also ist Perl ca. 4822 mal so schnell wie Basic.

Krasse Geschichte.

  • Autor

ich kanns mir echt nicht vorstellen warum das so langsam sein soll

ich hab doch bloss 4 schleifen, und jedesmal wird eine zahl zu einer variablen dazu addiert, und alle 10000 schritt wir abgespeichert und die temporäre datei geleert :(

@Enno kannst du nicht ein kleines Proggi basteln so mit ausgabe in txt und das posten, weil ich hab keinen plan von perl

irgendwas ist bei dir falsch.

dieses Perl Script:

open (DATEI, ">ip.txt") ||die "error!";


for ($a=0; $a <= 255; $a++) {

	for ($b=0; $b <= 255; $b++) {

		for ($c=0; $c <= 255; $c++) {

			for ($d=0; $d <= 255; $d++) {

				print DATEI $a, ".", $b, ".", $c, ".", $d, "\n";

			}

		}

	}

}


close(DATEI);

braucht für den Bereich:

0.0.0.0 bis 0.32.255.255

genau: 0:00:15,23 Stunden. Also 15 Sekunden und 23 hundertstel.

die Datei hat dann: 2162688 Zeilen

und eine Größe von: 27.763.712 Bytes

von 0.0.0.0 bis 255.255.255.255 sind es 8*255 soviele daten.

also würde das Script: 8:39:51,04 Stunden

Die Datei hätte dann: 4429185024Zeilen

und wäre: 56860082176 Bytes gross. Also ca. 53GB gross.

Das wären: 63274072 Blätter auf einem Nadeldrucker (á 70 Zeilen)

das entspricht 63275 Kartons á 1000 Blatt

das sind ca. 790925,9 Kg (1 Karton á 1000 Blatt = 12,5Kg)

Also brauchst du zum ausdrucken 790 TONNEN Papier.

Also spinnerte Idee.

Nur mal so zum Spass.

wer-hat-mehr-langeweile-Kampf und mein Favorit ist Enno mit seinen wilden Blattideen und Rechnungen :uli

Hallo,

warum so kompliziert?


int main()

{

  unsigned int ip;


  for (ip=0; ip<=4294967295; ip++) 

    printf("ip=%u\n", ip);

}

Nur für v4, keine Prüfung ob die IP-Adresse auch gültig ist (Broadcast-Adressen, usw.) und an der Text-Darstellung kann auch noch gearbeitet werden ;)

Nic

Trotzdem Thx also wie kann ich das Script compilieren???

Für das Perl-Script brauchst du den Perl Interpreter und das oben sieht nach C aus.

Hast du schon daran gedacht, das ganze IP-v6 fähig zu machen? Ich bin noch auf der Suche nach neuen Tapeten für unsere Stadt ;)

moin,

ich hab so das gefühl damit könnte man denn mond zupflastern (IPv6) oder doch die Erde??

wie war das gleich... also hexdarstellung dann mit : getrennt... aber wieviele stellen war das gleich wieder 6 gruppen a 2 stellen?

also von 00:00:00:00:00:00 bis FF:FF:FF:FF:FF:FF oder irre ich mich da?

  • Autor

Also das ganze auch noch v6-fähig? Hmmm...

Hat einer ne gute Verbindung zu HP oder andere Druckerhersteller, ich könnte da einen neuen Hardware-Dauertest anbieten, dann gibt's bald ne neue Einheit, neben Blatt/s ganz neu IPv4/Jahre. Ich denke wenn ich v4 erstmal ein vernünftiges Ergebnis habe, und darauf nicht Jahre warten muss werde ich v6 in Angriff nehmen, Versprochen. :bimei

Woher krieg ich den Perl Dingens?? :confused:

hab das ganze mal in c gecodet...

Compiliert und Ausgeführt in Dev-C++ 4.9.9.2

Ergebnis kann auch in datei umgeleitet werden

Misst die Zeit...

(nur Quellcode als anlage)

[edit:]

am letzten tach vorm urlaub ist mir auch immer langweilig...

da bekommt man keine programmierarbeiten mehr...

also einfach quellcode genießen.. und evtl. optimieren :) :)

[:edit]

IPv4.txt

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.