Well this isn't Peer-to-Peer as you're using a Host-Client Approach...
For a Peer-to-Peer, what you want to do is setup a UDP Listener as that will basically monitor a specific Port; just use "anyip4" as the address.
This as a note will work for receiving packets, but you will need to setup a Handshake for each Connected Player in order to get their IP Address to Send Packets.
Doing this you can go "Server-less" but you'll need to create an "Address Book" so to speak for other Players., meaning you'll have to have some way of them communicating first.
There are two methods for this...
either
A • They manually share IPs and add them to their Address Book (like a Phone Number)
B • Create a Shared Website (anything that supports JavaScript, Active PHP, ASP will work), where when someone connects; it creates a Unique ID for them (which they use to "Sign In") then when they're Connected to the Site (say when your Game is running), it will in the background get their IP and share it with anyone on their Whitelist ("Friends"), which itself would be a list of UID.
In essence it would act as a Lightweight Host/Server (like how Xbox Live works., as strictly speaking your accounts are only on their Servers for Backup Purposes... the actual Accounts are shared via Peer-to-Peer and updated every 5 minutes for Data, and 1 Minute for Activity)
Most Free Hosts without Database are actually enough to do this, just provided they support Web 2.0 Features., like Asynchronous GET/POST without reloading the Webpage; but that said provided you don't mind your bandwidth/connections on said Host being thrashed you could always do it via Web 1.0
Remember what's happening is you're effectively using the Web Host as a "Telephone Board" to allow people to connect without sharing sensitive information directly., as such it can all be handled by the App in the Background; and even Automatically Adjust the Update Checks based upon current Load to keep within the available Connections your host provides. (which are fairly low on Free Hosts)
Still once that info is stored, you don't really need to use the Host again... instead you can just directly query the Player.
I'm shattered from work... but I'll throw something together in the morning (or maybe thursday when I'm off) to help you.
Of course in the meantime I'd recommend checking out the Code Snippets Forum., as a lot of the DBP Code (esp. UDP Peer-to-Peer, which I do recall making one) that should be more-or-less identical.
Would be a great starting point