Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Dripcap03
Search
h2so5
September 24, 2016
Programming
360
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dripcap03
h2so5
September 24, 2016
More Decks by h2so5
See All by h2so5
Riot.js Tokyo #2
h2so5
0
740
Goによる P2Pチャットシステムの開発
h2so5
11
7.1k
Other Decks in Programming
See All in Programming
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.6k
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
150
The Rails Doctrine Decade
koic
2
440
Webの地図
yosuke_furukawa
PRO
6
5k
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
4
400
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
一人だけ、Kiroが静止する日
hideg
0
140
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
580
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
330
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
420
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.7k
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
340
30 Presentation Tips
portentint
PRO
1
410
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
Deep Space Network (abreviated)
tonyrice
0
350
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
Fireside Chat
paigeccino
43
4k
Raft: Consensus for Rubyists
vanstee
142
7.7k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
290
Transcript
8FCٕज़Λར༻ͨ͠Ϟμϯͳ ύέοτΞφϥΠβͷ։ൃ
github.com/h2so5 ʢגࣜձࣾ151ʣ 㰡ຊɹ
ύέοτΞφϥΠβ ωοτϫʔΫΞφϥΠβ ➔௨৴ͷ༰ΛՄࢹԽ͢Δπʔϧ
w ωοτϫʔΫͷͷղܾ w ηΩϡϦςΟͷͷݕূ w ϓϩτίϧ࣮ͷσόοά w ωοτϫʔΫϓϩτίϧͷֶश
None
w ΫϩεϓϥοτϑΥʔϜ w $ ɾ(6*2U w ରԠ͍ͯ͠Δϓϩτίϧ͕๛ w $$ ɾ-VBͰϓϥάΠϯ͕ॻ͚Δ
w άϥϑඳըػೳFUD
w -VBͰॻ͚ͯ͋·Γخ͘͠ͳ͍ w (6*ϓϥάΠϯͰ֦ுͰ͖ͳ͍ w άϥϑΟΫε༻ͷ"1*͕ͳ͍ w ϓϥάΠϯཧखಈ w ϚϧνίΞڥ͕ߟྀ͞Ε͍ͯͳ͍
Dripcap
w NBD04-JOVY8JOEPXTରԠ w )5.-$44+BWB4DSJQUͰ6*Λهड़ w ղੳث EJTTFDUPS +BWB4DSJQUͰهड़ w OQNϞδϡʔϧʹରԠ
w ϓϥάΠϯཧػೳ
Demo
w $P⒎FF4DSJQU➔+BWB4DSJQU w (P➔$ w 8JOEPXTରԠʢԾʣ #PPTUձٞWFS͔Βͷओͳมߋ
(6*ͷϑϨʔϜϫʔΫ&MFDUSPO
ෳͷύοέʔδΛΈ߹Θͤͯ(6*Λߏங 1BDLFU-JTU7JFX #JOBSZ7JFX 'JMUFS7JFX 1BDLFU7JFX 4UBUVT7JFX
(6*ͷϓϥάΠϯεΫϦϓτʢൈਮʣ import $ from 'jquery'; import riot from 'riot'; import
Component from 'dripcap/component'; import { Package } from 'dripcap'; export default class PacketFilterView { async activate() { let pkg = await Package.load('main-view'); let wrapper = $('<div/>'); this.comp = new Component(`${__dirname}/../tag/*.tag`); this.view = riot.mount(wrapper[0], 'packet-filter-view')[0]; pkg.root.panel.leftSouthFixed(wrapper); } async deactivate() { let pkg = await Package.load('main-view'); pkg.root.panel.leftSouthFixed(); this.view.unmount(); this.comp.destroy(); } }
(6*ͷϓϩηεͱղੳϓϩηε *1$ .FTTBHF1BDL &MFDUSPO +BWB4DSJQU 7+4&OHJOF $
(6* /*$ ղੳϓϩηεͷத +BWB4DSJQU Τϯδϯ σʔλϕʔε MJCQDBQ
/*$ %JTTFDUPS5ISFBE σʔλϕʔε MJCQDBQ %JTTFDUPS5ISFBE %JTTFDUPS5ISFBE %JTTFDUPS5ISFBE 2VFVF 4USFBN%JTTFDUPS (6*
'JMUFS5ISFBE 'JMUFS5ISFBE 'JMUFS5ISFBE 'JMUFS5ISFBE
import { Layer, Buffer } from 'dripcap'; import MACAddress from
'dripcap/mac'; import EthEnum from 'dripcap/eth/type'; export default class EthrenetDissector { analyze(packet, parentLayer) { let layer = new Layer(); layer.name = 'Ethernet'; layer.namespace = '::Ethernet'; let destination = parentLayer.payload.slice(0, 6); layer.fields.push({ name: 'MAC destination', attr: 'dst', data: destination }); layer.attrs.dst = new MACAddress(destination); let source = parentLayer.payload.slice(6, 12); layer.fields.push({ name: 'MAC source', attr: 'src', data: source }); layer.attrs.src = new MACAddress(source); ղੳثͷϓϥάΠϯεΫϦϓτʢൈਮʣ
՝ʁ
/PEFKTͷ"1*ͱͷޓੑͷ ϓϩτίϧͷਪఆͷ ύϑΥʔϚϯεͷ
/PEFKTͷ"1*ͱͷޓੑͷ w ղੳث EJTTFDUPS ͷ࣮ߦڥ/PEFKTͰ ͳ͘ɺૉͷ+BWB4DSJQU 7 /PEFKT ෩#V⒎FS
w /PEFKTͷ"1*جຊతʹ͑ͳ͍ͷͰɺ मਖ਼͠ͳ͍ͱར༻Ͱ͖ͳ͍OQNϞδϡʔϧ ͋Δ
ϓϩτίϧͷਪఆͷ w ϓϩτίϧͷछྨ͕σʔλ͔Βผ͠ʹ͘ ͍߹ʹͲ͏ॲཧ͢Δ͔ w ݱࡏͷ࣮Ͱɺ͋Δύέοτ͕ϓϩτί ϧ"ɾ#ೋ௨ΓʹղऍͰ͖Δ߹ɺ྆ํ ͷղੳ݁ՌΛग़ྗ͢Δ w 8JSFTIBSLͰϙʔτ൪߸Ͱผ
ύϑΥʔϚϯεͷ w ͑ͳ͍͜ͱͳ͍ͱ͍͏Ϩϕϧ WYͷ ͱ͖ΑΓվળ w վળ͖͍͢Ζ͍Ζ͋Δ͕ɺࠓͷͱ͜ Ζ༏ઌ͕͋·Γߴ͘ͳ͍ w
ͪΌΜͱϕϯνϚʔΫςετ͠ͳ͍ͱʜ
None