libcurlを使ってTFTP PUT/GETしてみる(MinGW + YAMAHA ROUTER)
YAMAHA ROUTER
YAMAHA ROUTERは、TFTP Serverを持っており以下の用途に使える
- ファームウェアアップデート
- 設定の取得
- 設定の書き込み
例えばTFTPで設定を書き込むときは以下のようにすればできる。
tftp -i 192.168.1.1 put config config.txt curl --data @config.txt tftp://192.168.1.1/config
逆に取得するときは以下のようにすればできる。
tftp -i 192.168.1.1 get config config.txt curl tftp://192.168.1.1/config -o config.txt
これらと同じことをlibcurlを使ってCプログラムからやってみる。
libcurlでTFTP PUT/GETする
- libcurlを使う準備は先の日記参照(http://d.hatena.ne.jp/mballack/20110508/1304840744)
- sample codeを以下に置く
http://cid-9e2c1831ac716e03.office.live.com/self.aspx/.Public/cURL/tftpput.c http://cid-9e2c1831ac716e03.office.live.com/self.aspx/.Public/cURL/tftpget.c
- 以下のようにコンパイルする
$ gcc tftpput.c -lcurl -lcurldll -o tftpput (MinGW) $ gcc tftpget.c -lcurl -lcurldll -o tftpget (MinGW) $ gcc tftpput.c -lcurl -o tftpput (Ubuntu) $ gcc tftpget.c -lcurl -o tftpget (Ubuntu)
- できあがったプログラムを以下のように実行すればROUTERの設定を取得したり書き込むことができる
tftpget 192.168.1.1 tftpput 192.168.1.1 config.txt
- このプログラムをWindowsで実行するには以下のDLLが必要になる
libcurl.dll libidn-11.dll