1#!/usr/local/bin/python2.7 2# send Unsolicited Neighbor Advertisement 3 4import os 5from addr import * 6from scapy.all import * 7 8# link-local solicited-node multicast address 9def nsma(a): 10 n = inet_pton(socket.AF_INET6, a) 11 return inet_ntop(socket.AF_INET6, in6_getnsma(n)) 12 13# ethernet multicast address of multicast address 14def nsmac(a): 15 n = inet_pton(socket.AF_INET6, a) 16 return in6_getnsmac(n) 17 18# ethernet multicast address of solicited-node multicast address 19def nsmamac(a): 20 return nsmac(nsma(a)) 21 22# link-local address 23def lla(m): 24 return "fe80::"+in6_mactoifaceid(m) 25 26ip=IPv6(src=lla(SRC_MAC), dst="ff02::1")/ICMPv6ND_NA(tgt=SRC_OUT6) 27eth=Ether(src=SRC_MAC, dst=nsmac("ff02::1"))/ip 28 29sendp(eth, iface=SRC_IF) 30time.sleep(1) 31 32exit(0) 33