scapy.utils6

IPv6的实用程序功能.

class scapy.utils6.Net6(net)

Bases: scapy.base_classes.Gen

从网络地址或名称生成IPv6列表

ip_regex = re.compile('^([a-fA-F0-9:]+)(/[1]?[0-3]?[0-9])?$')
name = 'ipv6'
scapy.utils6.construct_source_candidate_set(addr, plen, laddr)

给定分配给特定接口的所有地址(" laddr"参数),此函数将返回与" addr / plen"关联的"候选集".

基本上,该函数过滤所有接口地址,以仅保留与提供的前缀具有相同作用域的地址.

在此地址列表上,然后将执行源选择机制以选择与使用此前缀的某些特定目标关联的最佳源地址.

scapy.utils6.get_source_addr_from_candidate_set(dst, candidate_set)

此功能实现了RFC 3484第5节中定义的源地址选择算法的有限版本.该格式与本文档中描述的格式有很大不同,因为它对某些特定路由使用一组候选源地址进行操作.

scapy.utils6.in6_6to4ExtractAddr(addr)

提取嵌入在6to4地址中的IPv4地址. 传递的地址必须是6to4地址. 没有错误返回.

scapy.utils6.in6_addrtomac(addr)

从提供的地址中提取mac地址. 没有错误返回.

scapy.utils6.in6_addrtovendor(addr)

从提供的经过修改的EUI-64构建的IPv6地址中提取MAC地址,并使用IANA oui.txt文件获取供应商. 如果在众所周知的位置发现,则用于转换的数据库是Scapy从Wireshark安装中加载的数据库. 如果供应商未知,则不会返回错误" UNKNOWN"的错误.

scapy.utils6.in6_and(a1, a2)

提供所提供地址的位与位AND. 它们必须以网络格式传递. 返回值也是网络格式的IPv6地址.

scapy.utils6.in6_cidr2mask(m)

返回与提供的长度值关联的掩码(位字符串). 例如,如果在48上调用了函数,则返回值为b'ÿÿÿÿÿÿ'.

scapy.utils6.in6_ctop(addr)

将紧凑表示法(RFC 1924)中的IPv6地址转换为可打印表示法;-)错误时返回None.

scapy.utils6.in6_get6to4Prefix(addr)

返回与提供的IPv4地址关联的/ 48 6to4前缀.错误时,不返回None. 不检查地址的公共/私人状态

scapy.utils6.in6_getAddrType(addr)
scapy.utils6.in6_getLinkScopedMcastAddr(addr, grpid=None, scope=2)

如RFC 4489中所述,生成链接范围的多播地址.返回值是可打印的表示形式.

" addr"参数指定用于生成链接范围的多播地址IID的链接本地地址.

默认情况下,该函数返回:: / 96前缀(aka返回的地址的后32位为null). 如果通过'grpid'参数提供了组ID,则将地址的后32位设置为该值(可接受的格式:b'?4Vx'或'12345678'或0x12345678或305419896).

默认情况下,生成的地址范围是本地链接(2). 可以通过传递特定的"作用域"值作为函数的参数来修改该值. RFC 4489仅授权<= 2的范围值.强制执行由该函数执行(将不返回任何值).

如果没有链接本地地址可用于生成链接范围的IPv6组播地址,或者发生其他错误,则不返回任何内容.

scapy.utils6.in6_getLocalUniquePrefix()

返回伪随机生成的本地唯一前缀. 功能遵循RFC 4193第3.2.2节中有关前缀生成的建议.

scapy.utils6.in6_getRandomizedIfaceId(ifaceid, previous=None)

Implements the interface ID generation algorithm described in RFC 3041. The function takes the Modified EUI-64 interface identifier generated as described in RFC 4291 and an optional previous history value (the first element of the output of this function). If no previous interface identifier is provided, a random one is generated. The function returns a tuple containing the randomized interface identifier and the history value (for possible future use). Input and output values are provided in a “printable” format as depicted below.

ex::
>>> in6_getRandomizedIfaceId('20b:93ff:feeb:2d3')
('4c61:76ff:f46a:a5f3', 'd006:d540:db11:b092')
>>> in6_getRandomizedIfaceId('20b:93ff:feeb:2d3',
                             previous='d006:d540:db11:b092')
('fe97:46fe:9871:bd38', 'eeed:d79c:2e3f:62e')
scapy.utils6.in6_get_common_plen(a, b)

返回IPv6地址a和b的公共前缀长度.

scapy.utils6.in6_getha(prefix)

返回与给定子网中所有家乡代理关联的任播地址.

scapy.utils6.in6_getnsma(a)

返回给定地址的链路本地被请求节点多播地址. 通过的地址必须以网络格式提供. 返回值也是网络格式.

scapy.utils6.in6_getnsmac(a)

返回与提供的IPv6地址关联的多播mac地址. 传递的地址必须为网络格式.

scapy.utils6.in6_getscope(addr)

返回地址范围.

scapy.utils6.in6_ifaceidtomac(ifaceid)

从提供的iface ID中提取mac地址. Iface ID以可打印的格式提供(" XXXX:XXFF:FEXX:XXXX",最终被压缩). 没有错误返回.

scapy.utils6.in6_isaddr6to4(x)

如果提供的地址(可打印格式)是6to4地址(2002 :: / 16),则返回True.

scapy.utils6.in6_isaddrTeredo(x)

如果提供的地址是Teredo,则返回True,这意味着它位于/ 32 conf.teredoPrefix前缀值(默认为2001::)下. 否则,返回False. 地址必须以可打印格式传递.

scapy.utils6.in6_isaddrllallnodes(str)

如果address是本地链接的所有节点多播地址(ff02 :: 1),则返回True.

scapy.utils6.in6_isaddrllallservers(str)

如果address是本地链接的所有服务器多播地址(ff02 :: 2),则返回True.

scapy.utils6.in6_isanycast(x)
scapy.utils6.in6_isdocaddr(str)

如果提供的可打印格式地址属于为文档保留的2001:db8 :: / 32地址空间(如RFC 3849中定义),则返回True.

scapy.utils6.in6_iseui64(x)

如果提供的地址具有以修改后的EUI-64格式创建的接口标识符部分,则返回True(这意味着它与*::*:*ff:fe*:*匹配). 否则,返回False. 地址必须以可打印格式传递.

scapy.utils6.in6_isgladdr(str)

如果提供的可打印格式的地址属于_allocated_全局地址空间(2000 :: / 3),则返回True. 请注意,唯一本地地址(FC00 :: / 7)不属于全局地址空间,并且不匹配.

scapy.utils6.in6_isincluded(addr, prefix, plen)

当" addr"属于前缀/ plen时,返回True. 否则为假.

scapy.utils6.in6_islladdr(str)

如果提供的可打印格式的地址属于_allocated_链接本地单播地址空间(fe80 :: / 10),则返回True

scapy.utils6.in6_isllsnmaddr(str)

如果提供的地址是本地链接请求的节点多播地址,即属于ff02 :: 1:ff00:0/104,则返回True. 否则返回False.

scapy.utils6.in6_ismaddr(str)

如果提供的可打印格式的地址属于分配的多播地址空间(ff00 :: / 8),则返回True.

scapy.utils6.in6_ismgladdr(str)

如果地址属于全局多播地址空间(ff0e :: / 16),则返回True.

scapy.utils6.in6_ismlladdr(str)

如果地址属于本地链接多播地址空间(ff02 :: / 16),则返回True.

scapy.utils6.in6_ismnladdr(str)

如果地址属于RFC中定义的节点本地多播地址空间(ff01 :: / 16),则返回True

scapy.utils6.in6_ismsladdr(str)

如果地址属于站点本地多播地址空间(ff05 :: / 16),则返回True. 网站本地地址空间已被弃用. 由于历史原因,功能仍然保留.

scapy.utils6.in6_issladdr(str)

如果提供的可打印格式地址属于_allocated_站点本地地址空间(fec0 :: / 10),则返回True. 该前缀已被弃用,地址现在由IANA保留. 由于历史原因,功能将保留.

scapy.utils6.in6_isuladdr(str)

如果提供的可打印格式的地址属于唯一本地地址空间(fc00 :: / 7),则返回True.

scapy.utils6.in6_isvalid(address)

如果'address'是有效的IPv6地址字符串,则返回True,否则返回False.

scapy.utils6.in6_mactoifaceid(mac, ulbit=None)

以修改后的EUI-64格式计算与作为输入提供的以太网地址关联的接口ID. 接口标识符中U / L位获取的值基本上是给定MAC地址中值的反向值,可以使用可选的'ulbit'参数将其强制为特定值.

scapy.utils6.in6_or(a1, a2)

提供所提供地址的位或位. 它们必须以网络格式传递. 返回值也是网络格式的IPv6地址.

scapy.utils6.in6_ptoc(addr)

将可打印表示形式的IPv6地址转换为RFC 1924紧凑表示形式;-)错误时返回None.

scapy.utils6.in6_ptop(str)

规范以可打印格式提供的IPv6地址,并以可打印格式返回相同的地址. (2001:0db8:0:0 :: 1-> 2001:db8 :: 1)

scapy.utils6.in6_xor(a1, a2)

提供所提供地址的位到位XOR. 它们必须以网络格式传递. 返回值也是网络格式的IPv6地址.

scapy.utils6.teredoAddrExtractInfo(x)

从Teredo地址中提取信息. 返回值是一个四元组,由Teredo服务器的IPv4地址,标志值(int),映射的地址(未混淆)和映射的端口(未混淆)组成. 对通过的地址不执行任何特定的检查.