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する

    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