• Hi,

    brauchte für eins meiner Skripte eine Funktion um eine IPv4-Adresse auf ihre Korrektheit zu überprüfen (Kein ping!) Dazu habe ich mir folgende Funktion geschrieben:
    _IsIPv4_bak:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------
    UDF Name..........: _IsIPv4_bak
    UDF Version.......: 1.0
    Change Date.......: 2007-08-28
    UDF Description...: Checks if a variable is an IPv4 address.

    [/autoit] [autoit][/autoit] [autoit]

    Author(s).........: teh_hahn <[email='sPiTsHiT@gmx.de'][/email]>
    Company...........: none
    URL...............: http://www.autoit.de/

    [/autoit] [autoit][/autoit] [autoit]

    Parameter(s)......: $S_IP - Specifies the IPv4 address.
    Return Value......: Success: Returns 1
    Failure: Returns 0
    AutoIt Version....: 3.2.6.0
    Note(s)...........: none
    #ce ----------------------------------------------------------------------------
    Func _IsIPv4_bak(Const $S_IP)
    If StringRegExp($S_IP, "[12]?[0-9]{1,2}\.[12]?[0-9]{1,2}\.[12]?[0-9]{1,2}\.[12]?[0-9]{1,2}") Then
    Local Const $A_IPSPLIT = StringSplit($S_IP, ".")
    For $i = 1 To $A_IPSPLIT[0]
    If Int($A_IPSPLIT[$i]) > 255 Then Return (SetError(1, 0, 0))
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Return (1)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Return (SetError(2, 0, 0))
    EndFunc ;==>_IsIPv4_bak

    [/autoit]


    Ich denke mal, die kann der Ein oder Andere bestimmt auch mal gebrauchen!

    EDIT1: OK, ich gebe mich geschlagen, Deine Funktion ist eindeutig performanter! Hier nochmal:
    _IsIPv4:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------
    UDF Name..........: _IsIPv4
    UDF Version.......: 1.0
    Change Date.......: 2007-08-19
    UDF Description...: Checks if a variable is an IPv4 address.

    [/autoit] [autoit][/autoit] [autoit]

    Author(s).........: Thorsten Willert <[email='thorsten.willert@gmx.de'][/email]>
    Company...........: none
    URL...............: http://www.autoit.de/

    [/autoit] [autoit][/autoit] [autoit]

    Parameter(s)......: $S_IP - Specifies the IPv4 address.
    Return Value......: Success: Returns 1
    Failure: Returns 0
    AutoIt Version....: 3.2.6.0
    Note(s)...........: none
    #ce ----------------------------------------------------------------------------
    Func _IsIPv4(Const $S_IP)
    If StringRegExp($S_IP, "\A(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])\z") Then Return (1)
    Return (0)
    EndFunc ;==>_IsIPv4

    [/autoit]


    EDIT2: @huggy. Hast natürlich Recht. Schon gefixed. Wollte es bloß einheitlich zur Übersicht haben!

    2 Mal editiert, zuletzt von teh_hahn (28. August 2007 um 13:17)

  • Oh so was habe dich auch schon gebaut :)

    Spoiler anzeigen
    [autoit]


    ; ==============================================================================
    ; Function ......: __FFIsIP
    ; Description ...:
    ; Parameter(s) ..: ByRef $IP
    ; Requirement ...:
    ; Return values .: Success - 1
    ; Failure - 0
    ; User CallTip: .: (ByRef $IP)
    ; Author(s) .....: Thorsten Willert
    ; Date ..........: 19. August 2007
    ; Note(s) .......:
    ; ==============================================================================
    Func __FFIsIP(ByRef $IP)
    If StringRegExp($IP, "\A(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])\z") Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>__FFIsIP

    [/autoit]

    nur der Name ist etwas ungünstig, da das aus der FF.au3 ist.

    Falls das auch noch jemand braucht, hier sind noch mehr Ausdrücke:

    Diese und mehr sind auch bei jEdit4AutoIt bei XInsert dabei.

    Viele Grüße
    Stilgar

    Einmal editiert, zuletzt von Stilgar (28. August 2007 um 09:42)

  • Nur ne kleine frage: warum hast du (teh_hahn) dich bei Authors eingetragen, obwohl es Stilgars script ist?
    Abgesehen von 2 klitzekleinen Änderungen?