The browser sends the IP address as an HTTP header when talking to the server, and the server passes that information to the Perl code running the survey under the hood, and the Perl saves it in the data like any other variable.
It is possible to have people with the same IP address. For example, we are behind a firewall so if you were to survey employees of Sawtooth Software we would all have the same IP address to the outside world because our traffic goes through that firewall.
I'm curious to know what the panel provider means by them having a unique IP at their end. Do they mean in some database they have an IP associated with those respondents, like when they joined the panel their IP was XXX, or do they mean yesterday at 1 PM when a respondent clicked on a link to take your survey, they first hit their web server with one IP, and then were redirected to your survey where you see another IP one second later?