I find awk more clear for this kind of job. You can replace
grep -Po "(?<=ip=)(.*)"
with awk -F= '$1 == "ip" { print $2 }' grep -Po "(?<=ip=)(.*)"
with awk -F= '$1 == "ip" { print $2 }'