Hallo,
ich hatte hier bereits eine ähnliche Frage gestellt. Nun haben sich aber weitere Herausforderungen ergeben.
Ich möchte in einem Text nach allen IP Adressen bzw. mach IP Adressen mit Maske suchen. Dazu habe ich folgende Funktion:
[autoit]#include <Array.au3>
[/autoit][autoit][/autoit][autoit]IP_oder_IP_Netze_aus_Zwischenablage()
[/autoit][autoit][/autoit][autoit]Func IP_oder_IP_Netze_aus_Zwischenablage()
Local $aIP_Netze
;aus dem Text die IP Adresse bzw. IP Adresse/Netzmaske suchen und in Array ablegen
$aIP_Netze = StringRegExp(ClipGet(), '(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?: ?/\d{1,2})?', 3)
if @error Then ;wurde denn auch eine IP Adresse in der Zwischenablage gefunden?
Msgbox(64, "Fehler", "Keine IP Netze in der Zwischenablage gefunden!")
Return
EndIf
$aIP_Netze = _ArrayUnique($aIP_Netze) ;Doppelte Eintrage aus der Liste entfernen
[/autoit][autoit][/autoit][autoit]_ArrayToClip($aIP_Netze, 1) ;Ergebnis in die Zwischenablage
[/autoit][autoit][/autoit][autoit]MsgBox(0, "Ergebnis", "In der Zwischenablage wurden " & $aIP_Netze[0] & " IP Adressen mit Netzwerkmaske gefunden und als Liste zurück in die Zwischenablage kopiert." )
EndFunc
Wenn ich dieser Funktion aber folgendes gebe:
ZitatAlles anzeigen;~ 10.11.70.1
;~ 10.11.71.0/24
;~ 10.11.72.0 /24
;~ 10.11.73.0 / 24
;~ 10.11.74.0 255.255.255.0
;~ 10.11.75.0/255.255.255.0
;~ 10.11.76.0/ 255.255.255.0
;~ 10.11.77.0/ 255.255.0.0
;~ 10.11.78.0 / 255.255.255.0
Kommt das folgende Ergebnis:
ZitatAlles anzeigen10.11.70.1
10.11.71.0/24
10.11.72.0 /24
10.11.73.0
10.11.74.0
255.255.255.0
10.11.75.0/25
5.255.255.0
10.11.76.0
10.11.77.0
255.255.0.0
10.11.78.0
Hat jemand eine Idee wie ich das noch optimieren könnte?
Gruß Ingo