Once a connection has been established, traditionally yes you can get the source IP. However I don't know if micropython supports that. Look up the API calls that work with the connection handle/object.
You write: 10. Set the Pico W to listen for connections on port 80 from any IP address.
Please delete the "from any IP address" part. The API you use doesn't do that. Saying so is inaccurate.