Get virtual address (void*), check /proc/self/maps, check /proc/self/pagemap. See this post:
http://stackoverflow.com/a/6261020 for an explanation.
Remember to lock the page first, or the virtual memory system could change the mapping at any time. Also ask yourself
why you want to do that. If hardware memory addresses matter for your code, you should probably be writing a kernel module. (If you
are writing kernel code, check the other answers on the linked page, I'm not familiar with kernel internals myself but someone else may know.)
Gareth