hi everyone! i want to test if a given string is an ip a address. how could i do this using desktop app?
192.168.1.0 -->will be correct
192.168.1. -->error
192.168.1.1.1 -->error
192.168.1.1:0 -->error
ds.168.1.0 --> error
thanks a lot!
hi everyone! i want to test if a given string is an ip a address. how could i do this using desktop app?
192.168.1.0 -->will be correct
192.168.1. -->error
192.168.1.1.1 -->error
192.168.1.1:0 -->error
ds.168.1.0 --> error
thanks a lot!
Here is an implementation to check for IP v4:
Function IsIPv4(s As String) As Boolean
Dim rg as New RegEx
Dim match as RegExMatch
Dim result As Boolean
rg.SearchPattern = "(?:(?: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]?)$"
match = rg.search(s)
result = (match <> Nil)
return result
End Function
…and to use…
if IsIPv4("192.168.10.2") then
MsgBox "Ping me!"
end if
In the RegExRX samples, I include four different patterns for this. Two of them are variations on what Alwyn posted above, one will exclude unusable addresses, and the last will exclude unusables and loopbacks (127.x.x.x). Let me know if you’d like either of those.
wow! great responses in record time! i didn’t know regex. kem and eric helped me to understand and alwyn helped me with the hands on. thanks a lot again. my question is solved.
After testing the formal validity of the address, you may want to check it has an active connection.
See https://forum.xojo.com/10912-pass-string-to-shell-command
Should be:
rg.SearchPattern = "^(?:(?: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]?)$"