CJam, 46 44 43 bytes
l~),{s__6890s-!\iA%g2$_69s_W%erW%=!&&'.*N}/
I think there's some room for improvement.
Slightly outdated explanation:
l~ "Read an eval input.";
), "Get range from 0 to n.";
{ }/ "For each...";
s__ "Convert to string and get two copies.";
0689s-! "Contains rotation-safe digits?";
\ "Swap with other copy.";
iA%g "Ends with digit other than 0?";
& "AND.";
{ }* "If true...";
__ "Make two more copies.";
69s_W%er "Swap 6 and 9.";
W% "Reverse.";
=! "Is different from original?";
'.* "If so, push a period.";
N "Push a newline.";