Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Given two machines on a local network, both connected via IPv4 and IPv6, can machine A get the IPv6 of machine B if it has machine B's IPv4 address?

I presume the ARP cache should be able to provide some indication of the IPv6 address, provided traffic has passed between the two has passed to the computer over IPv6? Answers for both Windows and *nix are welcome.

share|improve this question
    
You could look at the ARP and Neighbour Discovery caches, but remember that systems usually have multiple IPv6 addresses – Sander Steffann May 25 '13 at 14:46
    
It's useful to keep in mind that ARP's basic job is to convert IPv4 addresses to and from the MAC-48 address used by Ethernet and Wi-Fi, but ARP isn't used with IPv6. Instead, IPv6 uses NDP. I wouldn't be surprised if some software tries to mix the terms, in order to benefit from people's familiarity with ARP, but the simple thing to do is to correctly not think of ARP as related to IPv6 at all. Instead, IPv6 uses NDP. Unix: often an "ndp" command exists, man ndp to see how to show the IPv6 NDP neighbors. Newer/modern Windows: netsh interface ipv6 show neighbors – TOOGAM Apr 21 at 8:33

If the mapping between the IPv4 address and MAC address is found in machine A's ARP cache, then you can guess some of machine B's IPv6 addresses (usually one or two) as follows:

  • The Link local address, which is fe80::Modified-EUI-64. The modified EUI-64 is derived from the MAC address.
  • One autoconfigured IPv6 address per subnet on the local link. Like the link local address, the bottom 64 bits of this address are the modified EUI-64.

However, note that the link local address may not be that useful (it can only be used to communicate on-link with machine A) and as for autoconfigured addresses, that function is not always enabled.

If you don't know machine A's MAC address then you can't predict anything about iuts IPv6 address(es) from its IPv4 address(es).

share|improve this answer
    
Upvoting with caveat : privacy extensions to the earlier IPv6 drafts have resulted in reduced usefulness of attempts to guess an IPv6 address. – TOOGAM Apr 21 at 8:29

Information about a device's IP addresses of the other type can often be queried, but not using ARP or another protocol that is part of.

For example, in Microsoft Windows: WMIC /NODE:"192.0.2.1" /OUTPUT:"outwmic.txt" NICCONFIG Get Caption,Description,IPAddress,MACAddress

Obviously you should customize the IPv4 address, and can customize the output file. You can also get more information, like details that will show you the subnet size. Try leaving off everything after the word "Get" to see some more of the columns that you can specify.

I'm sure there are other solutions, including some commercial solutions (e.g., Kaseya is known to exist for Linux). I'm sure some of the available software works on Unix-style platforms. WMI is Microsoft's fancy term for their software that uses WBEM, and SNMP may also be a protocol commonly used (based on warren's Serverfault question: actual or de-facto alternatives to WMI exist for Linux and Unix). The downside is that, although the technical capability does seem feasible enough to exist, differences may cause this to be non-standard enough that you may need to plan to spend a bit of time developing/testing a customized approach.

I presume the ARP cache [...] ?

This didn't look like the main question. I'm briefly mentioning it here so my answer doesn't seem incomplete. See my comment (provided under your question, not under any of the answers) about where I already discussed ARP further.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .