2

私のテストケースでは、ランダムなIPv6送信元アドレスと固定プレフィックスを使用してNAを送信する必要があります。例えば:

プレフィックス2001::cafe:/64を修正しました。アドレスの残りの部分はランダムである必要があります。

PythonまたはScapyで達成する方法は?

4

4 に答える 4

6
import random   
M = 16**4
"2001:cafe:" + ":".join(("%x" % random.randint(0, M) for i in range(6)))
于 2011-10-05T12:00:44.460 に答える
5

住所のどの部分をランダムにしたいのか、質問からはわかりません。最後の2バイトを想定しています。

python 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クラスには、ネットワークのブロードキャストアドレスなど、多くの有用な属性があります。

于 2011-10-05T11:56:41.363 に答える
0

文字列フォーマットを使用するだけ:

import random

random.seed()
print '2001::cafe:%x/64' % random.getrandbits(16)
于 2011-10-05T12:01:23.420 に答える
0

Scapyには、ランダムなipv6アドレスを生成する機能が組み込まれています。

source = RandIP6("2000::cafe:*:*")
print source

をいじりzero's回す場合は、286行目の前にscapy/volatile.pyのブロンコードに2行を追加する必要があることに注意してください。

if n == 0:
        ip.append("0")
于 2013-11-21T13:34:12.530 に答える