<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.ipv6lab.f1.htw-berlin.de/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.ipv6lab.f1.htw-berlin.de/feed.php">
        <title> &amp;nbsp; &amp;nbsp; &amp;nbsp;  IPv6-Labor - ne:scapy</title>
        <description></description>
        <link>https://wiki.ipv6lab.f1.htw-berlin.de/</link>
        <image rdf:resource="https://wiki.ipv6lab.f1.htw-berlin.de/_media/wiki/logo.png" />
       <dc:date>2026-05-13T02:55:35+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.ipv6lab.f1.htw-berlin.de/ne/scapy/ipv6_na?rev=1539958740&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.ipv6lab.f1.htw-berlin.de/ne/scapy/ipv6_ra?rev=1542959086&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.ipv6lab.f1.htw-berlin.de/ne/scapy/new_protocol?rev=1649255364&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.ipv6lab.f1.htw-berlin.de/_media/wiki/logo.png">
        <title> &nbsp; &nbsp; &nbsp;  IPv6-Labor</title>
        <link>https://wiki.ipv6lab.f1.htw-berlin.de/</link>
        <url>https://wiki.ipv6lab.f1.htw-berlin.de/_media/wiki/logo.png</url>
    </image>
    <item rdf:about="https://wiki.ipv6lab.f1.htw-berlin.de/ne/scapy/ipv6_na?rev=1539958740&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-19T14:19:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ipv6_na</title>
        <link>https://wiki.ipv6lab.f1.htw-berlin.de/ne/scapy/ipv6_na?rev=1539958740&amp;do=diff</link>
        <description>IPv6 Neighbor Solicitation &amp; Advertisement

Der folgende Code sollte in einer Mininet-Umgebung funktionieren (gestartet mit --mac), 
und simuliert das Senden einer Solicitation von Host 1 an Host 2:


from scapy.all import *

# Solicitation
head = IPv6()
head.dst = &quot;ff02::1:ff00:0002&quot;

ns=ICMPv6ND_NS(tgt=&quot;2001:db8::2&quot;)
llSrcAdd=ICMPv6NDOptSrcLLAddr(lladdr=&quot;00:00:00:00:00:01&quot;)

sol = head/ns/llSrcAdd

sol.show()
send(sol)



# Advertisement
head = IPv6()
head.dst = &quot;ff02::1&quot;

na=ICMPv6ND_NA(tgt=&quot;…</description>
    </item>
    <item rdf:about="https://wiki.ipv6lab.f1.htw-berlin.de/ne/scapy/ipv6_ra?rev=1542959086&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-23T07:44:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ipv6_ra</title>
        <link>https://wiki.ipv6lab.f1.htw-berlin.de/ne/scapy/ipv6_ra?rev=1542959086&amp;do=diff</link>
        <description>IPv6 Router Advertisements

&lt;https://tools.ietf.org/html/rfc4861&gt;


head = IPv6()                      # IPv6-Header
head.dst = &quot;ff02::1&quot;               # Destination-Adresse ist die All Nodes Multicast Address
icmp6 = ICMPv6ND_RA()              # ICMPv6-Header für Neighbor Discovery Router Advertisement

o_pref = ICMPv6NDOptPrefixInfo()   # ICMPv6-Option: Prefix Information
o_pref.prefix = &#039;2001:db8:1::&#039;     # Präfix wie in RA vom regulären Router
o_pref.prefixlen = 64              # Präfix-Läng…</description>
    </item>
    <item rdf:about="https://wiki.ipv6lab.f1.htw-berlin.de/ne/scapy/new_protocol?rev=1649255364&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-06T14:29:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>new_protocol</title>
        <link>https://wiki.ipv6lab.f1.htw-berlin.de/ne/scapy/new_protocol?rev=1649255364&amp;do=diff</link>
        <description>Erstellung eines eigenen Protokoll-Layers in Scapy

Es lassen sich relativ einfach eigene Protokolle in Scapy nachbauen. Dazu wird einfach eine Klasse erstellt, die von Packet erbt:


class MY_PROTO(Packet):
    name = &#039;Protocol Example&#039;
    fields_desc = [
        BitField(&#039;field1&#039;, 0, 1),   # 1 Bit, initialized to 0
        BitField(&#039;field2&#039;, 3, 7),   # 7 Bit, initialized to 3
        LEShortField(&#039;count_1&#039;, 0), # 2-Byte - LittleEndian
        ShortField(&#039;count_2&#039;),      # 2-Byte - BigEndian
 …</description>
    </item>
</rdf:RDF>
