//Starten Sie den Proxy-Collector //Wechseln Sie zu Extraktor Script //Löschen Sie das vorhandene Script //Kopieren Sie diesen Text in das //Script Feld. //Anschließend müssen die Option //"Beim Auslesen Extraktor Script nutzen" //aktivieren! function StringSplit(sSource: string;cSplitter: char): TStringList; var nStartPos: integer; nPos: integer; nLen: integer; lokal:string; begin // create the list lokal:= 'abc'; lokal:= sSource; Result := TStringList.Create; Result.BeginUpdate; // now scan the string nStartPos := 1; nLen := Length(lokal); for nPos := 1 to nLen do if (lokal[nPos] = cSplitter) then begin Result.Add(Copy(lokal, nStartPos, nPos - nStartPos)); nStartPos := nPos + 1; end; // add the final string if (nStartPos <= nLen) then Result.Add(Copy(lokal, nStartPos, nLen - nStartPos + 1)); Result.EndUpdate; end; function TransformHTMLToASCII(sSource:string):string; var lsource:string; i:integer; htmlcode:string; replacer:string; begin lsource:= sSource; for i:= 46 to 58 do begin htmlcode:= '&#'+inttostr(i);//-->> .,/ replacer:= chr(i); lsource:=AnsiReplaceText(lsource,htmlcode,replacer); end; result:= lsource; end; function ExtractIps(CurrentSiteContent:string):string; var localstring:string; separatedstring:string; separatedlist:TStringList; i:integer; current:string; begin localstring:= 'dummy'; current:= 'dummy'; separatedstring := 'dummy'; CurrentSiteContent:= TransformHTMLToASCII(CurrentSiteContent); separatedstring:= CollectPatternMatches('\b([01]?\d?\d|2[0-4]\d|25[0-5])(\.(?1)){3}(&port=((\d){1,5}(?1)))+\b',CurrentSiteContent,';'); if Length(separatedstring) <> 0 then begin separatedList:= StringSplit(separatedstring,';'); try for i:= separatedlist.count - 1 downto 0 do begin current:= separatedlist.strings[i]; current:=AnsiReplaceText(current,'&port=',':'); if pos(':',current) > 0 then separatedlist.strings[i]:= current else separatedlist.delete(i); end; separatedstring:= separatedlist.commatext; finally separatedlist.free; separatedlist := nil; end; end; result:= separatedstring; if length(separatedstring) < 100 then begin separatedstring:= CollectPatternMatches('\b([01]?\d?\d|2[0-4]\d|25[0-5])(\.(?1)){3}(:{1}((\d){1,5}))+\b',CurrentSiteContent,';'); end; result:= separatedstring; if length(separatedstring) < 100 then begin separatedstring := CollectPatternMatches('\b([01]?\d?\d|2[0-4]\d|25[0-5])(\.(?1)){3}(\x20{1}((\d){1,5}))+\b',CurrentSiteContent,';'); if Length(separatedstring) <> 0 then begin separatedList:= StringSplit(separatedstring,';'); try for i:= separatedlist.count - 1 downto 0 do begin current:= separatedlist.strings[i]; current:=AnsiReplaceText(current,' ',':'); if pos(':',current) > 0 then separatedlist.strings[i]:= current else separatedlist.delete(i); end; separatedstring:= separatedlist.commatext; finally separatedlist.free; separatedlist := nil; end; end; result:= separatedstring; end; end;