Можно ли это сделать? Меня не волнует, какой инструмент, ping, nmap, nslookup. Черт, я даже напишу сценарий на bash. Мне просто нужно в этом разобраться.
Изменить: Все, что я знаю, это адреса IPv4, и я хочу узнать их адреса IPv6. Я реально не могу просканировать весь блок IPv6 / 32, и это в любом случае ужасно неэффективно. TL; DR
Вход IPv4> Выход IPv6
Псевдокод:
ping 1.2.3.4
Результат:
1.2.3.4: Адрес IPv6
Нет никакого прямого отображения между адресами IPv6 и IPv4. Самым надежным путем я могу думать (который требует, чтобы Вы были в той же сети как узел IPv4), должен получить MAC-адрес для IP и создать локальный для ссылки адрес EUI-64-based из него. Таким образом, узлы IPv6 будут почти всегда автоматически настраивать основанный на MAC локальный для ссылки адрес, таким образом, это должно будет работать в большинстве случаев.
следующие быстрые-и-грязные работы сценария в качестве примера над Ubuntu, Гостеприимной (16.04) пока python3-netaddr
, пакет установлен. Это, кажется, не работает над Надежным человеком (14.04), так как netaddr библиотека пропускает часть необходимой функциональности.
#!/bin/bash -e
IP=$1
ping -c 1 $1 > /dev/null 2> /dev/null
MAC=$(arp -an $1 | awk '{ print $4 }')
IFACE=$(arp -an $1 | awk '{ print $7 }')
python3 -c "
from netaddr import IPAddress
from netaddr.eui import EUI
mac = EUI(\"$MAC\")
ip = mac.ipv6(IPAddress('fe80::'))
print('{ip}%{iface}'.format(ip=ip, iface=\"$IFACE\"))"
использование В качестве примера (принимающий Вас вставил содержание в ipv4-to-ipv6.sh
и сделал chmod +x ipv4-to-ipv6.sh
):
./ipv4-to-ipv6.sh 192.168.0.1
fe80::224:b4ff:fe9c:1329%eth0
Примечание, что это - локальный для ссылки адрес, должно быть ограничено по объему к конкретной ссылке, чтобы быть полезным, поэтому требует %<interface>
быть применимым в большей части приложения. Если бы Ваши хосты имеют глобальный одноадресный префикс в этой сети также, они были бы, вероятно, быть достижимым использованием основанного на MAC адреса там, также. (Вы могли, например, измениться ip = mac.ipv6(...)
строка для использования глобального префикса, и это должно работать.)
of=somepartition
, таким образом, случай, где Вы пишете в целое дисковое устройство doesn' t применяются.dd
can' t обходят ограничения драйвера устройства. – Barmar 26 October 2017 в 17:19