Since others have gotten to the "get me back to IPv4" part of this question, I'll tackle the other bit. I can't say I've seen many ipv6 addresses in the wild, so "look normal" ? uh... let's google, shall we?
Here's a nice link on "normal" IPv6 addresses:
IPv6 addresses consist of eight hexadecimal groups. Each
hexadecimal group, separated by a colon (:), consists of
a 16-bit hexadecimal value. The following is an example
of the IPv6 format:
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
..and from What Does an IPv6 Address Look Like?:
Colons separate 16-bit fields. Leading zeros can be omitted
in each field as can be seen above where the field :0003: is
written :3:. In addition, a double colon (::) can be used
once in an address to replace multiple fields of zeros. For
example:
fe80:0:0:0:200:f8ff:fe21:67cf
can be written
fe80::200:f8ff:fe21:67cf
So your example is this:
fe80::8150:b519:d5da:8a00%9
According to A Dwarf, the %9 is a "zone index", "an identifier that helps transmitting packets across link-local addresses (when a host has more than one interface)". So it's identifying the interface (NIC) received this packet, but not actually part of the IPv6 address.
The "::" means :0:, or :0:0:, or maybe more zeroes. We don't know how many. If we discard the %9, then we're looking at:
fe80::8150:b519:d5da:8a00
Since we know there's 8 groups of 4 hex digits, and we see only 5 groups above, we know there are three groups that the "::" needs to fill. So the actual address is:
fe80:0000:0000:0000:8150:b519:d5da:8a00
1The %9 prefix is the "zone index". An identifier that helps transmitting packets across link-local addresses (when a host has more than one interface). Here's the packet was sent to the zone index 9, which could be nic 9, for instance. – A Dwarf – 2009-10-05T01:56:26.473
@A Dwarf thx for the insight! adding to the answer. – quack quixote – 2009-10-05T19:37:47.443