Is there a way of extracting the IP address from the blockchain of the miner that is awarded a block?
No. IP addresses are not stored in the blockchain.
If you are running
well connected nodes, that are connected to nearly all the mining pools as peers, then the first peer to relay a block to you is likely to be the peer that generated that block. You can then store the IP address of the peer that sent you that block as the peer that the block was "received from". It isn't a guarantee that the peer mined the block. The actual miner may not have sent the block directly to you, but may instead have sent it to someone else that forwarded it to you. The more nodes you are connected to, the more likely that you will receive the block directly from the pool that mined it.
While it is not required, most pools will put identifying information in the generation transaction. Any pool could lie, and put a different pool's identifying information in the transaction if they want (or no identifying information at all).
By using the combination of well connected peers to catch IP addresses and identifying information in the generation transaction, you can make educated guesses about the mining pool that solved the block. You won't always be right, but you may be right often enough for your purpose. This is what
blockchain.info does.