Podes usar Upnp (Universal Plug & Play), para abrir puertos en el router, no es cosa simple, y no se si se puede hacer en VB.
Bueno, estuve sniffeando paquetes y vi esto:
La compu se conecta a la netmask y pide la direccion del router.
Luego se conecta al router en el puerto 2869.
Ahi manda un POST /WANIPConnCtrlUrl HTTP/1.1
SOAPACTION: "urn:schemas-upnp-org:service:WANIPConnection:1#GetGenericPortMappingEntry"
Que aparentemente pide la lista de los puertos mapeados. Es un tema medio jodido. Pero se puede aprender, si supiera como se llama el protocolo, lo podría buscar...
Saludos!
Novedad: Aparentemente devuelve una tabla XML.