online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon ip-finder vom 20.08.2020, 11:46 Options

[Batch] Ermitteln, ob eine Zeichenfolge eine gültige IP-Adresse ist

Hallo zusammen,


ich möchte mit nativen Batch unter Windows 2000 ermitteln, ob die allein in einer Zeile einer Text-Datei stehende beliebige Zeichenfolge (zB. aaa.bbb.ccc.ddd) einer gültigen IP-Adresse entspricht.
Dabei kann diese Adresse alle denkbaren gültigen Werte annehmen, die für IP-Adressen der Version 4 möglich sind.

Die mögliche(n) Lösung(en) sollen wirklich nur natives Batch für Windows 2000 sein.


Beispiel aus einer solchen Datei:

Beliebiger Text auch mit Sonderzeichen
Beliebiger Text auch mit Sonderzeichen
Beliebiger Text auch mit Sonderzeichen
Beliebiger Text auch mit Sonderzeichen
Beliebiger Text auch mit Sonderzeichen

127.0.0.1

Beliebiger Text auch mit Sonderzeichen
Beliebiger Text auch mit Sonderzeichen
Beliebiger Text auch mit Sonderzeichen

127.0.0.1

Beliebiger Text auch mit Sonderzeichen
Beliebiger Text auch mit Sonderzeichen
Beliebiger Text auch mit Sonderzeichen
Beliebiger Text auch mit Sonderzeichen


Danke.

ip-finder


Antwort schreiben

Antwort 1 von Ralfman vom 20.08.2020, 12:26 Options

Wenn es immer um die 127.X.X.X geht kannst Du ohne weiteres mit dem Befehl find arbeiten, und das Ergebnis in eine Beliebige Datei zum Weiterverarbeiten schicken.

Ralf

Antwort 2 von ip-finder vom 20.08.2020, 12:34 Options

@Ralfman:

Zitat aus meinem Thread:

Zitat:
Dabei kann diese Adresse alle denkbaren gültigen Werte annehmen, die für IP-Adressen der Version 4 möglich sind.


Gruß
ip-finder

Antwort 3 von pAiNiNveRtEr vom 20.08.2020, 12:50 Options

du kannst dir auch die hände auf den rücken binden und mit den füßen essen....

nur mit "native batch" geht das nich

Antwort 4 von Ralfman vom 20.08.2020, 12:51 Options

Dann mal sorum gefragt:
Was willst Du genau?
Die Momentane IP Adresse ermitteln und in eine Textdatei Schreiben um diese anschließend auszuwerten?
Hast Du ein Serverprotokoll laufen aus dem Du die ZUgriffs IP Adressen Auslesen willst?
Was genau steckt hinter Deiner Anfrage?
Was Du vorhast ist sicherlich mit einer for Schleife möglich - ich Persönlich stehe mit dem for befehl allerdings auf Kriegsfuß.
Daher Verrate uns mal worum es genau geht, wo die Textdatei herkommt, und was der Zweck des ganzen ist.

Ralf

Antwort 5 von ip-finder vom 20.08.2020, 13:40 Options

@Ralfman


diese Textdatei ist vorhanden, auf deren Gestaltung habe ich keinen Einfluss. Die Adressen sollen später, so sie gültig sind, in eine neue .txt-Datei geschrieben werden.

Gruß
ip-finder

Antwort 6 von nina92 vom 20.08.2020, 15:15 Options

was verstehst du denn unter "gültiger" IP addresse ?

willst du ein kleines programm schreiben, das die 4 teile der IP addresse auf wertebereich 1-255 überprüft ?

Antwort 7 von Ralfman vom 20.08.2020, 15:26 Options

Ich Versteh das ganze auch noch nicht so ganz, wo kommt denn die Textdatei her?
In der Zeit in der Du Antwortest Bastel ich mal ein bischen ;-)

Ralf

Antwort 8 von ip_finder vom 20.08.2020, 15:36 Options

@nina92

genau... es soll geprüft werden, ob die einzelnen Blöcke dem gültigen Wertebereich angehören; somit wäre diese Zeichenfolge eine gültige IP-Adresse.

@Ralfman
es handelt sich dabei um die Ausgabedatei eines Programms

Gruß
ip-finder

Antwort 9 von Ralfman vom 20.08.2020, 16:09 Options

Noch 'ne frage, stehen im "Beliebiger Text auch mit Sonderzeichen" auch irgendwelche Zahlen?

Antwort 10 von Ralfman vom 20.08.2020, 16:12 Options

Ok, versuch mal folgendes:
finfstr [1-9].[1-9].[1-9].[1-9] Die_zu_Durchsuchende_Datei.txt


Ralf

Antwort 11 von Ralfman vom 20.08.2020, 16:13 Options

findstr [1-9].[1-9].[1-9].[1-9] Die_zu_Durchsuchende_Datei.txt
Natürlich. Da hat sich wieder ein Tippfehler eingeschlichen :-)

Antwort 12 von ip-finder vom 20.08.2020, 16:20 Options

@ Ralfman

Zitat:
[...] stehen im "Beliebiger Text auch mit Sonderzeichen" auch irgendwelche Zahlen?


In diesem beliebigen Text steht wirklich alles (un)mögliche: Zahlen, normale Zeichen, Sonderzeichen.

Gruß
ip-finder

Antwort 13 von Ralfman vom 20.08.2020, 16:58 Options

OK, aber solange imBeliebigen text nicht eine IP Adresse Steht, sollte findstr Funktionieren.
[1-9] = die zu suchenden Zeichen,
. = ein Platzhalter, also ein Beliebiges Zeichen.
Also wird eine IP Adresse nach dem Muster Zahl(192)Zeichen(.)Zahl(168)Zeichen(.)Zahl(178)Zeichen(.)Zahl(1) gesucht (das beispiel währ eine Fritz.Box).
es werden alle gefundenen Strings aufgelistet die dem Suchmuster entsprechen. mir ist schon klar das der findstr Befehl auf ungewöhnliche weise *Z*t wird, sollte aber auch bei Dir Funktionieren.
Eine Rückmeldung währ super.

Ralf

Antwort 14 von ip-finder vom 21.08.2020, 11:27 Options

@ Ralfman


Das ist ein netter Ansatz, mit dem ich mich sicher noch ein bisschen beschäftigen werde.

Gruß
ip-finder

Antwort 15 von Ralfman vom 21.08.2020, 12:28 Options

Danke fürs Feedback, das ist hier nicht selbstverständlich :-)
Und weil Du Reagiert hast, helfe ich auch gern weiter wenns irgendwo klemmt. Immer nur Posten, ich geb mir dann mühe.

Ralf

Antwort 16 von ip-finder vom 26.08.2020, 16:15 Options

@ Ralfman,

vielen Dank für Deinen Lösungsvorschlag. Dein Ansatz

Zitat:
findstr [1-9].[1-9].[1-9].[1-9] Die_zu_Durchsuchende_Datei.txt


fördert leider alle Zeilen zutage, die Ziffernfolgen enthalten. Das ist recht ungünstig, weil in dem Text außer "normalen" Buchstaben a-z auch reservierte Zeichen (zB. % & ! < > | ) vorkommen. Es ist also möglich, das eine Zeichenfolge

&127.0.0.1%(] ab def

gefunden wird. Eigentlich sollten nur Zeilen gefunden werden, die ausschließlich IP-Adressen und sonst nichts weiter enthalten.

Ich bin erst übermorgen wieder dabei...

Gruß
ip-finder

Antwort 17 von Ralfman vom 26.08.2020, 17:39 Options

haste recht. Wenn sich die IP Adresse wie in Deinem Beispiel aus der Frage allerdings Tatsächlich am Zeilenanfang befindet, kannst Du das ganze auch ab am Zeilenanfang suchen lassen.
findstr /B [1-9].[1-9].[1-9].[1-9] Die_zu_Durchsuchende_Datei.txt
Damit sollte Das Problem erledigt sein, da
Zitat:
Zeilen gefunden werden, die ausschließlich IP-Adressen und sonst nichts weiter enthalten.
Wenn nicht, geb mir mal Deine eMail Adresse, und ich fordere von Dir ein Protokoll an, an dem ich Herumprobieren kann.
Danke übrigens für die Rückmeldung (ist hier nicht selbstverständlich, freut mich gerade deshalb um so mehr).

Ralf

Antwort 18 von ip-finder vom 28.08.2020, 10:53 Options

@ Ralfman,


die Idee, FINDSTR mit der Option /b zu ergänzen, ist gut. Jetzt werden alle Zeilen gefunden, an deren Anfang eine Ziffernfolge steht.
Allerdings werden auch diejenigen Zeilen ausgegeben, die mit Buchstaben bzw. Sonderzeichen enden.

Das wird mich sicher noch beschäftigen.


Gruß
ip-finder

Antwort 19 von Ralfman vom 28.08.2020, 11:13 Options

Kann ich leider nicht nachvollziehen, da angegeben ist das er ausschließlich nach Zahlen suchen soll.
Was hälst Du von der Idee Dich hier Anzumelden, und mir dann über den Pager Deine eMail Adresse zukommen läßt. Ich kann Dir dann meine schicken, und Du läßt mir mal ein Protokoll zukommen an dem ich das Problen lösen kann.
Der Pager Funktioniert leider erst wenn Du Dich hier anmeldest, und eine eMail Adresse hier ins Forum setzen ist nicht so prall. Von mir aus kannst Du die logdatei auch ändern, am Auswerten hab ich sicherlich kein interesse. das Problem zieht sich meiner Meinung nach nur schon zu lange hin.

Ralf

Antwort 20 von ip-finder vom 28.08.2020, 11:45 Options

@ Ralfman,

teste es mal mit einer Textdatei,
die folgende Zeilen enthält:

Zitat:
127.0.0.1
Das ist irgendein beliebiger Text.
192.168.0.1abc


Leider kann ich erst am Montag wieder hier sein.

Gruß
ip-finder

Ähnliche Themen

Zeichenfolge löschen???
auchmalhier  06.07.2007 - 17 Hits - 1 Antwort

Wochenanzahl in php ermitteln
michi200  17.12.2007 - 115 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026