Zum Inhalt springen

IP Generator - Hilfe willkommen


Empfohlene Beiträge

Geschrieben

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:

Geschrieben

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

Geschrieben

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.

Geschrieben
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]

Geschrieben

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.

Geschrieben

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

Geschrieben

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

Geschrieben

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.

Geschrieben

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.

Geschrieben

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????

Geschrieben

(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.

Geschrieben

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.

Geschrieben

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

Geschrieben
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

Geschrieben

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

Geschrieben

Thx für die Hilfe aber das Script sagt mir leida gar nix

Und wenn es kompliziert geht warum soll ich dann den einfachen Weg gehn?? :P

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

Geschrieben

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?

Geschrieben

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:

Geschrieben

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

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...