From your question, I think the proxy server is doing the address translation. Right? In that case, the IP packets hitting the Router will have the translated IP address coming from the proxy server.
If you want to see the packets hitting the router, you can use any network sniffers, like Network General. There are also some software based network sniffers.
You can also read the packets hitting the router using "debug ip packets" command, but they are very very CPU intensive and may slow down or totally shutdown the router, if the number of packets are high. So be very very careful when using debug commands on a production router. You can use this command in a lab, if you want.
I am not sure if we can do this with Visual C or Visual Basic.