Hallo wie finde Ich herraus, ob eine Variable eine IP Adresse ist?
Wie finde ich raus, ob eine Variable eine IP ist?
-
- [ gelöst ]
-
Jonathan -
4. Oktober 2009 um 18:55 -
Geschlossen -
Erledigt
-
-
Das kommt wohl darauf an wie und was du in die Variable einspeicherst.
-
Das kommt wohl darauf an wie und was du in die Variable einspeicherst.
eventuell habe ich mich falsch ausgedrückt...^^
[autoit]
Wie mache ich es, das eine MsgBox kommt, wenn hier $a keine ip ist
[/autoit]
$a = inputbox("IP","Gib eine Ip ein") -
Ich glaube das geht nicht, denn man müsste ja die IP in $a schreiben, aber wenn man z.B. 25.241.122.24 eingibt, wird es nicht als nummer erkannt, da es mehr als 1 Punkt hat, deswegen muss man die Zahl in "" setzen, aber dann kann man nur IsString abfragen.
-
Raupi hat mir eine Lösung gegeben
Man kann $a aufsplitten mit StringSplit($ip,".") und dann die einzelnen teile mit isNumber überprüfen
man könnte dann zwar 100000.1758.2352.138 eingeben, aber es ist ja schonmal ein anfang
-
mach das einfach so:
Spoiler anzeigen
[autoit]If StringRegExp(inputbox("IP","Gib eine Ip ein"), '\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b', 0) Then
[/autoit]
MsgBox(0, '', "Ist eine IP-Adresse")
Else
MsgBox(0, '', "keine korrekte IP-Adresse!")
EndIf -
- Offizieller Beitrag
[autoit]If Not StringRegExp($input, '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b') Then _
[/autoit]
MsgBox(0, '', 'Das ist keine IP!') -
- Offizieller Beitrag
Hm. ich sollte langsam mal anfangen Reguläre Ausdrücke zu lernen. Da erspart man sich eine Menge Code.
-
Hier ist auch noch eine möglichkeit:
Spoiler anzeigen
[autoit]$IP = "127.0.0.1"
[/autoit] [autoit][/autoit] [autoit]If CheckIP($IP) Then
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, "True", $IP & " ist eine IP")
Else
MsgBox(0, "False", $IP & " ist keine IP")
EndIfFunc CheckIP($IP)
[/autoit]
$Part = StringSplit($IP, ".")
If $Part[0] <> 4 Then Return False
For $a = 1 To 4 Step + 1
If Not StringIsInt($Part[$a]) Then Return False
If $Part[$a] > 255 Or $Part[$a] < 0 Then Return False
Next
Return True
EndFuncLG
-
Hallo Jonathan,
das einfachste wäre es erst gar keine anderen Eingaben zuzulassen, dafür gibt es _GUICtrlIpAddress_Create (erzeugt ein GUI zu Eingabe einer IP-Adresse) schau dir einfach die Hilfe dazu an,
mfg (Auto)Bert
-
wie gut, dass das Script nur 3 Zeilen hat ...