I am working on a project for discovering IPv6 host over the internet and I have a question. Is there any way that I can send a request to an IPv4 address and return me back their IPv6 address (if it has any) ?

There is no direct translation from IPv6 to IPv4. Any translation would only be visible to the NAT device itself assigning the addresses. As Grawity explains you can prefix an IPv4 address but the resulting address is NOT an actual IPv6 address.
–
RamhoundJul 24 '13 at 11:55

The "conversion" is useless, as it only converts to "IPv4-mapped" address notation (which could be done by just prefixing the IPv4 address with ::ffff:); the "mapped" addresses still are IPv4 addresses and cannot be used to communicate over an IPv6 network. See RFC 4291 and RFC 4038 for why they exist at all.
–
grawityJul 24 '13 at 11:39