Yes, there is an if statement, but the manipulation of % symbols as strings is limited, and the set of things you can do with %name% variables is different from the things you can do with %1, %2, etc. arguments.
You can easily test if a variable begins with 192.168 by using a substring:
if %ipv4:~0,7% == 192.168 goto LOCAL_IP
The syntax is for substrings is %name:~offset,length%, so if you have already determined that a URL begins with HTTP://, you can see if a local IP address follows that with:
if %url:~7,7% == 192.168 goto LOCAL_URL
if /i %url:~7,9% == localhost goto LOCAL_URL
That last show the use of /i to perform a case-insensitive compare.
You can put those ideas together with looping and the call-to-a-label statement to make your own "contains" test. It's a bit of a mess, though, so you're better off trying to live without it before you go down that road.
Command line help has a lot of information. Try:
IF /? or HELP IF ... for more information about the if command
SET /? or HELP SET . . . for more information about things to do with % variables
CALL /? or HELP CALL . . . for info about arguments %1, %2, etc. and call to label