나의 테스트 케이스에서, 랜덤 IPv6 소스 주소와 고정 프리픽스를 가진 NA를 보내야한다. 예 :Python (또는 Scapy)을 사용하여 임의의 IPv6 주소를 생성하는 방법은 무엇입니까?
고정 된 접두어 2001 :: cafe :/64. 주소의 나머지는 무작위이어야합니다.
어떻게 파이썬이나 Scapy로 구현할 수 있습니까?
나의 테스트 케이스에서, 랜덤 IPv6 소스 주소와 고정 프리픽스를 가진 NA를 보내야한다. 예 :Python (또는 Scapy)을 사용하여 임의의 IPv6 주소를 생성하는 방법은 무엇입니까?
고정 된 접두어 2001 :: cafe :/64. 주소의 나머지는 무작위이어야합니다.
어떻게 파이썬이나 Scapy로 구현할 수 있습니까?
import random
M = 16**4
"2001:cafe:" + ":".join(("%x" % random.randint(0, M) for i in range(6)))
주소의 임의 부분을 원하는 질문에서 확실하지 않습니다. 나는 마지막 2 바이트를 추측하고있다. 파이썬 netaddr 라이브러리를 사용하여
:
import random
from netaddr.ip import IPNetwork, IPAddress
random.seed()
ip_a = IPAddress('2001::cafe:0') + random.getrandbits(16)
ip_n = IPNetwork(ip_a)
ip_n.prefixlen = 64
print ip_a
print ip_n
샘플 출력 : 간단한 문자열 형식을 통해
2001::cafe:c935
2001::cafe:c935/64
장점은, 시작 주소, 랜덤 비트 렌을 사용자 정의하기 쉬운 것입니다. 또한 netaddr 클래스에는 많은 유용한 attr이 있습니다. 네트워크의 브로드 캐스트 주소
그냥 문자열 형식 사용 :
import random
random.seed()
print '2001::cafe:%x/64' % random.getrandbits(16)
Scapy가 내장 된 임의의 IPv6 주소를 생성하는 기능을 가지고 있습니다. 그것의 zero's
와 장난 경우, 당신은 행 앞에 scapy/volatile.py의 broncode 2 개 라인을 추가 할 필요가
source = RandIP6("2000::cafe:*:*")
print source
주 286
if n == 0:
ip.append("0")