[UDF] RegExp - Extraction des adresses IP d'un fichier

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

[UDF] RegExp - Extraction des adresses IP d'un fichier

#1

Message par Tlem »

Sur le modèle de l'UDF pour l'extraction des adresses mail d'une page Web , voici un script qui vous permettra d'extraire les adresses IP d'un fichier quelconque en éliminant les doublons possible.

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------
   
    AutoIt Version : 3.2.12.0
    Auteur:         Tlem
   
    Fonction du Script :
    Extraction des adresses IP d'un fichier avec filtrage des doublons.
   
#ce ----------------------------------------------------------------------------

$InputFile = "IP_In.txt"
$OutputFile = "IP_Out.txt"

$String = FileRead($InputFile)

$aIP = StringRegExp($String, "(?:\w{1,3}\.\w{1,3}\.\w{1,3}\.\w{1,3})", 3)
; IP + port => 192.168.1.1:5000
;$aIP = StringRegExp($String, "(?:\w{1,3}\.\w{1,3}\.\w{1,3}\.\w{1,3}:\w{4})", 3)

If Not @error Then
    $aFilteredIP = _ArrayUnique($aIP, '', 0)
    
    Dim $Res
    For $i = 1 To $aFilteredIP[0]
        $Res &= $aFilteredIP[$i] & @CRLF
    Next

    $hOutputFile = FileOpen ($OutputFile, 2) 
    FileWrite($hOutputFile, $Res)
    FileClose($hOutputFile)
EndIf

ShellExecute($OutputFile)
Exit

Func _ArrayUnique(ByRef $aArray, $vDelim = '', $iBase = 1, $iUnique = 1)
    If $vDelim = '' Then $vDelim = Chr(01)
    Local $sHold
    For $iCC = $iBase To UBound($aArray) - 1
        If Not StringInStr($vDelim & $sHold, $vDelim & $aArray[$iCC] & $vDelim, $iUnique) Then _
                $sHold &= $aArray[$iCC] & $vDelim
    Next
    Return StringSplit(StringTrimRight($sHold, StringLen($vDelim)), $vDelim)
EndFunc   ;==>_ArrayUnique
Pour extraire l'information directement d'une page web, remplacez ceci :

Code : Tout sélectionner

$InputFile = "IP_In.txt"
$OutputFile = "IP_Out.txt"

$String = FileRead($InputFile)
par ceci :

Code : Tout sélectionner

#include <IE.au3>

$AdressIn = "http://proxynext.com/proxylist1.php"
$OutputFile = "IP_Out.txt"

$oIE = _IECreate ($AdressIn, 0, 0)
$String = _IEBodyReadText($oIE)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre