{"id":952,"date":"2021-09-16T17:51:14","date_gmt":"2021-09-16T07:51:14","guid":{"rendered":"https:\/\/www.nickdu.com\/?p=952"},"modified":"2021-09-16T17:51:14","modified_gmt":"2021-09-16T07:51:14","slug":"use-sharppcap-to-construct-and-send-udp-packet","status":"publish","type":"post","link":"https:\/\/nickdu.com\/?p=952","title":{"rendered":"Use SharpPcap to construct and send UDP packet"},"content":{"rendered":"\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/chmorgan\/sharppcap\" target=\"_blank\">SharpPcap<\/a> is fully managed, cross platform (Windows, Mac, Linux) .NET library for capturing packets from live and file based devices. Now we want to send UPD packet using SharpPcap.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public int SendUdp(byte&#91;] dgram, int bytes, IPEndPoint endPoint)\n{\n    \/\/construct ethernet packet\n    var ethernet = new EthernetPacket(PhysicalAddress.Parse(\"112233445566\"), PhysicalAddress.Parse(\"665544332211\"), EthernetType.IPv4);\n    \/\/construct local IPV4 packet\n    var ipv4 = new IPv4Packet(IPAddress.Parse(\"192.168.0.4\"), endPoint.Address);\n    ethernet.PayloadPacket = ipv4;\n    \/\/construct UDP packet\n    var udp = new UdpPacket(12345, (ushort)endPoint.Port);\n    \/\/add data in\n    udp.PayloadData = dgram;\n    ipv4.PayloadPacket = udp;\n\n    _device.SendPacket(ethernet);\n    return bytes;\n}<\/code><\/pre>\n\n\n\n<p>SharpPcap can be found <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/chmorgan\/sharppcap\" target=\"_blank\">https:\/\/github.com\/chmorgan\/sharppcap<\/a>.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SharpPcap is fully managed, cross platform (Windows, Mac, Linux) .NET library for capturing packets from live and file based devices. Now we want to send UPD packet using SharpPcap. SharpPcap can be found https:\/\/github.com\/chmorgan\/sharppcap.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,2],"tags":[],"class_list":["post-952","post","type-post","status-publish","format-standard","hentry","category-net","category-it"],"_links":{"self":[{"href":"https:\/\/nickdu.com\/index.php?rest_route=\/wp\/v2\/posts\/952","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nickdu.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nickdu.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nickdu.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nickdu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=952"}],"version-history":[{"count":0,"href":"https:\/\/nickdu.com\/index.php?rest_route=\/wp\/v2\/posts\/952\/revisions"}],"wp:attachment":[{"href":"https:\/\/nickdu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=952"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nickdu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=952"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nickdu.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}