SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
PHPで使うIPv6の実際
小山 哲志 id:koyhoge
koyama@hoge.org
本日の内容
•IPv6対応とはどういうことか?
•PHP本体のIPv6対応
•外部Extension/PEARの対応
•まとめ
本日の内容
•IPv6対応とはどういうことか?
•PHP本体のIPv6対応
•外部Extension/PEARの対応
•まとめ
まず前提
•2010∼2011年に新しいIPv4アドレスがな
くなります。
•一般ユーザへのアドレス配布が変わる
•IPv4プライベート+NAT
•IPv6グローバル
•IPv4NATにはいろいろ問題が多い
•サービスのIPv6対応が必須の世界へ
IPv4とIPv6の違い
•アドレス長が違う
•IPv4: 32ビット (xxx.xxx.xxx.xxx)
•IPv6: 128ビット
(ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff)
•IPv4と違い、IPv6はインターフェースに
複数のアドレスが付くのが普通
•どのアドレスをsrcにするか?
IPv6対応とは?
•IPv4でしか動かないものを、
IPv6のみで動くようにすること
ではなく
IPv4でもIPv6でも、両方で動くようにす
ること。
•プロトコルに依存しないプログラミング
OSの対応は完了している
•最新のOSであれば問題なし
•Linux,BSD(MacOS),その他UNIX
•WindowsXP,Vista
•新APIに従ったアプリケーションならば
大丈夫
•PHPもOSから見ればアプリケーション
ホスト名→アドレス
•リゾルバ
•/etc/hosts
•DNS
•etc..
API変更
•IPv4
•gethostbyname
•gethostbyaddr
•IPv4+IPv6
•getaddrinfo
•getnameinfo
何故APIの変更が必要か?
•これまでのアドレス情報(sockaddr)
•IPv4決めうち
•これからのアドレス情報
•複数の情報が返る可能性
•A,AAAA両方設定されているかも
本日の内容
•IPv6対応とはどういうことか?
•PHP本体のIPv6対応
•外部Extension/PEARの対応
•まとめ
PHPの使われ方
•Apache(やその他のWebサーバの)モ
ジュールとして
•mod_php
•CGIとして
•コマンドラインとして
mod_php/CGI
•ネットワーク入出力はhttpdが面倒を見
てくれる
•PHP自体はIPv6対応の必要なし
•アドレス解析部分は除く
•Apacheは問題なくIPv6を扱える
httpdに頼れない場合
•PHPで独自にネットワーク接続をする
•他のWebサービスにアクセスする
•メール送受信
•FTP送受信
•etc...
PHPのネットワークIO
•streamモデル
•ソケットを直接使わなくても、ネット
ワーク入出力ができる
•ライブラリのほとんどはこれを利用して
いるが、例外あり
streamのIPv6対応
•php_network_getaddresses()
•main/network.c
•getaddrinfoを用いて、セオリー通りに
プログラミングしている
•php_stream_xport_create()
•main/streams/transports.c
•問題なし
streamはOK
$cont = file_get_contents('http://ipv6.google.com/');
$fp = fsockopen('ipv6.google.com', 80);
$out = "GET / HTTP/1.1rn";
$out .= "Host: ipv6.google.comrn";
$out .= "Connection: Closernrn";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
ext/sockets
•streamではないネットワーク入出力
•socketそのままのAPI
•bind,listen,acceptもある
•一応IPv6対応しているが、AF_INET6を明
示的に指定する必要がある
•IPv6→IPv4フォールバックができない
•要注意!
DNS Query
•dns_get_record (PHP関数)
•AAAAも含めて、すべてのレコードが
ちゃんと返ってくる
•ただしBSD(MacOS含む),Windowsでは
実装されていない
•PEAR::Net_DNSを使う
gethostbyname
•PHP関数
•同名のC APIの単純なラッパー
•IPv6対応のコードは一応入っている
•でもOSによっては動かない
•Linux,MacOSはだめ
•gethostbyaddrも同様
本日の内容
•IPv6対応とはどういうことか?
•PHP本体のIPv6対応
•外部Extension/PEARの対応
•まとめ
extension/PEAR
•標準extension
•soap, ftp
•PEAR
•Net_IPv6
•Net_Socket
•Net_POP3
•Net_IMAP
•Net_Server
ext/soap
•SOAP
•HTTPでXMLを用いたRPC
•http_connect(): php_http.c
•php_stream_xport_createを使ってい
る
•streamの上で動いているのでOK
ext/ftp
•FTP
•ファイル転送プロトコル
•php_network_connect_socket_to_hostを
呼び出している
•その下でphp_network_getaddresses
•問題なし
PEAR::Net_IPv6
•IPv6アドレス解析クラス
•メソッドは3つだけ
•Uncompress
•Compress
•CheckIPv6
PEAR::Net_IPv6つづき
require_once 'Net/IPv6.php';
$v6addr = 'fe80::1';
$uc = Net_IPv6::uncompress($v6addr);
echo $uc;
// fe80:0:0:0:0:0:0:1
PEAR::Net_Socket
•socketのOO API
•fsockopen/pfsockopenを呼び出している
•つまりstreamを使う
•connect時にIPv4を前提にしたアドレス
チェックを行なっている
•ホスト名が渡されるとgethostbynameで
名前解決する
PEAR::Net_Socketつづき
•IPv6なアドレスやAAAAしかないホスト名
が渡されると、この部分は無効になる
•結果的にPHP内部で名前解決される
• OK!
if (!$addr) {
return $this->raiseError('$addr cannot be empty');
} elseif (strspn($addr, '.0123456789') == strlen($addr) ||
strstr($addr, '/') !== false) {
$this->addr = $addr;
} else {
$this->addr = @gethostbyname($addr);
}
PEAR::Net_Socketつづき
require_once 'Net/Socket.php';
$sock = new Net_Socket;
$sock->connect('ipv6.google.com', 80);
$out = "GET / HTTP/1.1rn";
$out .= "Host: ipv6.google.comrn";
$out .= "Connection: Closernrn";
$sock->write($out);
while (!$sock->eof()) {
echo $sock->gets(128);
}
$sock->disconnect();
PEAR::Net_POP3
•メール取得プロトコルPOP3
•Post Office Protocol version3
•PEAR::Net_Socketを使っている
•OK!
PEAR::Net_IMAP
•メール取得プロトコルIMAP
•Internet Message Access Protocol
•PEAR::Net_Socketを使っている
•OK!
PEAR::Net_SMTP
•メール転送プロトコルSMTP
•Simple Mail Transfer Protocol
•PEAR::Net_Socketを使っている
•OK!
PEAR::HTTP_Request
•HTTP送受信ライブラリ
•PEAR::Net_Socketを使っている
•OK!
PEAR::Net_Server
•PHPでサーバを作るクラス
•bindしてlistenするもの
•sockets extensionを利用
•IPv4/IPv6で同時に待ち受けるサーバは作
れない
PEAR::Net_DNS
•DNS問い合わせを行なうクラス
•socketはfsockopenを使っている
•AAAAも含めて問い合わせできるが、呼
び出し時にRR Typeを指定しなくてはい
けない
本日の内容
•IPv6対応とはどういうことか?
•PHP本体のIPv6対応
•外部Extension/PEARの対応
•まとめ
まとめ
•PHPは結構ちゃんとIPv6対応している
•fsockopen/Net_Socketがベースになっ
ているものが多い。
•自動的にIPv6名前解決、接続できる
•IPv6アドレス解析はまだまだ不十分
•マルチキャスト/エニーキャストの考慮
はない
•PHPで必要かどうかも疑問
お願い
•まだまだ調査不足を実感しています
•私もIPv6でサービスを運用した経験は
ありません
•とりあえずIPv6触ってみませんか?
•他言語の調査をしてくれる方大募集

Contenu connexe

Tendances

WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
You_Kinjoh
 
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
Yoshiaki Sugimoto
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
Takuya Sato
 

Tendances (20)

あなたのところに専用線が届くまで
あなたのところに専用線が届くまであなたのところに専用線が届くまで
あなたのところに専用線が届くまで
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
 
閉域網接続の技術入門
閉域網接続の技術入門閉域網接続の技術入門
閉域網接続の技術入門
 
WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
 
YJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組みYJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組み
 
さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築
 
明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化
 
絶対に止まらないバックボーン
絶対に止まらないバックボーン絶対に止まらないバックボーン
絶対に止まらないバックボーン
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
RENAT - ネットワーク検証自動化
RENAT - ネットワーク検証自動化RENAT - ネットワーク検証自動化
RENAT - ネットワーク検証自動化
 
AbemaTVのアーキテクチャの変遷 / AbemaTV DevCon 2018 TrackA Session A2
AbemaTVのアーキテクチャの変遷 / AbemaTV DevCon 2018 TrackA Session A2AbemaTVのアーキテクチャの変遷 / AbemaTV DevCon 2018 TrackA Session A2
AbemaTVのアーキテクチャの変遷 / AbemaTV DevCon 2018 TrackA Session A2
 
インターネットの舞台裏
インターネットの舞台裏インターネットの舞台裏
インターネットの舞台裏
 
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
 
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 

Similaire à PHPで使うIPv6の実際

AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
iPride Co., Ltd.
 
I pv6 research_basical
I pv6 research_basicalI pv6 research_basical
I pv6 research_basical
kuni255
 

Similaire à PHPで使うIPv6の実際 (20)

IPv6って何?(拡張ヘッダ編)
IPv6って何?(拡張ヘッダ編)IPv6って何?(拡張ヘッダ編)
IPv6って何?(拡張ヘッダ編)
 
PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際
 
IPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tfIPv6 application_and_v4kokatsu-tf
IPv6 application_and_v4kokatsu-tf
 
Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編)
Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編)Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編)
Lightweight Language Diverプレゼン資料:アプリケーションのIPv6対応のススメ(LL編)
 
IPv6時代のWebアプリケーション&プラットフォーム 2014
IPv6時代のWebアプリケーション&プラットフォーム 2014IPv6時代のWebアプリケーション&プラットフォーム 2014
IPv6時代のWebアプリケーション&プラットフォーム 2014
 
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
 
これからのアプリ開発はIPv6対応で行こう!(2014/09/20 OSC Hiroshima版)
これからのアプリ開発はIPv6対応で行こう!(2014/09/20 OSC Hiroshima版)これからのアプリ開発はIPv6対応で行こう!(2014/09/20 OSC Hiroshima版)
これからのアプリ開発はIPv6対応で行こう!(2014/09/20 OSC Hiroshima版)
 
結局IPv6ってどうなん?(序)
結局IPv6ってどうなん?(序)結局IPv6ってどうなん?(序)
結局IPv6ってどうなん?(序)
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
 
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
20150228 OSC2015 Tokyo/Spring サンプルコードで理解するアプリケーションのIPv6対応
 
IPv6ハッカソンの紹介
IPv6ハッカソンの紹介IPv6ハッカソンの紹介
IPv6ハッカソンの紹介
 
I pv6 research_basical
I pv6 research_basicalI pv6 research_basical
I pv6 research_basical
 
20120516 v6opsf-ngn final
20120516 v6opsf-ngn final20120516 v6opsf-ngn final
20120516 v6opsf-ngn final
 
20180309 jaipa-shimonoseki
20180309 jaipa-shimonoseki20180309 jaipa-shimonoseki
20180309 jaipa-shimonoseki
 
192.0.0.4 on android
192.0.0.4 on android192.0.0.4 on android
192.0.0.4 on android
 
545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!
 
PHPの今とこれから2006
PHPの今とこれから2006PHPの今とこれから2006
PHPの今とこれから2006
 
IPv6 Update
IPv6 UpdateIPv6 Update
IPv6 Update
 
20190705 QUNOG14-kumamoto
20190705 QUNOG14-kumamoto20190705 QUNOG14-kumamoto
20190705 QUNOG14-kumamoto
 

Plus de Tetsuji Koyama

LLまつりに行こう!
LLまつりに行こう!LLまつりに行こう!
LLまつりに行こう!
Tetsuji Koyama
 
FuelPHPを3ヶ月使ってみて
FuelPHPを3ヶ月使ってみてFuelPHPを3ヶ月使ってみて
FuelPHPを3ヶ月使ってみて
Tetsuji Koyama
 
the History of LL events
the History of LL eventsthe History of LL events
the History of LL events
Tetsuji Koyama
 
the Histrory of LT and ドラ娘
the Histrory of LT and ドラ娘the Histrory of LT and ドラ娘
the Histrory of LT and ドラ娘
Tetsuji Koyama
 
Keires_DBリリースのご案内
Keires_DBリリースのご案内Keires_DBリリースのご案内
Keires_DBリリースのご案内
Tetsuji Koyama
 
日本は世界一のITコミュニティ天国
日本は世界一のITコミュニティ天国日本は世界一のITコミュニティ天国
日本は世界一のITコミュニティ天国
Tetsuji Koyama
 

Plus de Tetsuji Koyama (14)

FuelPHP で DynamoDB
FuelPHP で DynamoDBFuelPHP で DynamoDB
FuelPHP で DynamoDB
 
まつりとTシャツと私
まつりとTシャツと私まつりとTシャツと私
まつりとTシャツと私
 
LLまつりに行こう!
LLまつりに行こう!LLまつりに行こう!
LLまつりに行こう!
 
FuelPHPを3ヶ月使ってみて
FuelPHPを3ヶ月使ってみてFuelPHPを3ヶ月使ってみて
FuelPHPを3ヶ月使ってみて
 
the History of LL events
the History of LL eventsthe History of LL events
the History of LL events
 
the Histrory of LT and ドラ娘
the Histrory of LT and ドラ娘the Histrory of LT and ドラ娘
the Histrory of LT and ドラ娘
 
IPv6の闇とPHP
IPv6の闇とPHPIPv6の闇とPHP
IPv6の闇とPHP
 
PHP Frameworks with IPv6
PHP Frameworks with IPv6PHP Frameworks with IPv6
PHP Frameworks with IPv6
 
LL Planets告知
LL Planets告知LL Planets告知
LL Planets告知
 
Keires_DBリリースのご案内
Keires_DBリリースのご案内Keires_DBリリースのご案内
Keires_DBリリースのご案内
 
開発ライセンスとプログラマーの自由
開発ライセンスとプログラマーの自由開発ライセンスとプログラマーの自由
開発ライセンスとプログラマーの自由
 
日本は世界一のITコミュニティ天国
日本は世界一のITコミュニティ天国日本は世界一のITコミュニティ天国
日本は世界一のITコミュニティ天国
 
Traitsについて
TraitsについてTraitsについて
Traitsについて
 
ランダム文字ぽいものをつくる
ランダム文字ぽいものをつくるランダム文字ぽいものをつくる
ランダム文字ぽいものをつくる
 

Dernier

Dernier (11)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

PHPで使うIPv6の実際