Estimating the number of grains of sand on Earth is difficult. [This source suggests 7.5x10<sup>18</sup> grains][1] (7.5 quintillion), but only includes beaches (deserts, under-sea sand and other sources not included.) [This source suggests 10<sup>20</sup> to 10<sup>24</sup> grains][2] (up to septillion grains of sand). 

The number of addresses IPv6 could possibly address is 2<sup>128</sup> (excluding reserved addresses), or about 3.4x10<sup>38</sup> (340 decillion). Even if you remove the reserved addresses you're still left with far more IPs than grains.

In fact, assuming the most number of grains of sand - around 10<sup>24</sup> - 294 *femtopercent*  (yes, femto, 10^-15) would be used if every grain were allocated an IP. You could allocate 340 billion planets with the same number of grains of sand before you even came close to filling up the address space. After *all* that, you'd still have 2.8x10^35 (280 decillion) addresses free.


  [1]: http://www.hawaii.edu/suremath/jsand.html
  [2]: http://www.newton.dep.anl.gov/askasci/ast99/ast99215.htm