я так понимаю первые два октета не изменяются, т.е. если например ip начинается с "123.123." - белый, если с "111.111." - серый.
если так то можно приблизительно таким макаром:
Код:

:loop
D:\soft\nircmd-x64\nircmd.exe rashangup "PPPoE"
ping -n 1 -w 1000 192.168.254.254 >nul
ipconfig | find "123.123." >NUL && goto :EOF || D:\soft\nircmd-x64\nircmd.exe rasdial "PPPoE" & ping -n 1 -w 35000 192.168.254.254 >nul & goto :loop
т.о. если получен белый - батник завершает работу, если серый - начинается с :loop.