
限られたバイナリを含むARM CPUベースのBusyBox v1.8.1(組み込みLinux)があります。カールを使わずにhttpを投稿または挿入する方法は?利用可能なwgetがあります。
# wget
BusyBox v1.8.1 (2015-04-06 16:22:12 IDT) multi-call binary
Usage: wget [-c|--continue] [-s|--spider] [-q|--quiet] [-O|--output-document file]
[--header 'header: value'] [-Y|--proxy on/off] [-P DIR]
[-U|--user-agent agent] url
Retrieve files via HTTP or FTP
Options:
-s Spider mode - only check file existence
-c Continue retrieval of aborted transfer
-q Quiet
-P Set directory prefix to DIR
-O Save to filename ('-' for stdout)
-U Adjust 'User-Agent' field
-Y Use proxy ('on' or 'off')
CPU情報...
# cat /proc/cpuinfo
Processor : ARM926EJ-S rev 1 (v5l)
答え1
多くは、busyboxや他のコマンドの内容によって異なります。私はあなたの制限がうまくwget
いかないと思います。シンプルPOSTリクエストは、cat
ソケットを開くことができる場合(例:nc
(netcat、socat)、telnet
またはフルバージョンを使用してbash
次のように接続できます)を使用してシミュレートできます。
curl
要求を実行し、記録されたすべてのデータをコピーする他のマシンから。たとえば、
curl --trace-ascii - -0 -d var=val http://localhost/~meuh/dump.cgi
これは、送信カールトレース出力に表示されます。
POST /~meuh/dump.cgi HTTP/1.0
User-Agent: curl/7.37.0
Host: localhost
Accept: */*
Content-Length: 7
Content-Type: application/x-www-form-urlencoded
var=val
たとえば、Googleにbashスクリプトを使用してファイルに入れると、POSTを再現できます。
#!/bin/bash
exec 5<>/dev/tcp/www.google.com/80
cat mypostfile >&5
cat <&5 # reply
\r\n
これは、行の終わりにあまりにも面倒でない小規模なデータとサーバーでのみ機能できますが、ユーザーのニーズには十分です。
答え2
netcat
Buildrootでは、多くのツールを使用できます(http://buildroot.uclibc.org/)その後、wget
デバイスにダウンロードして使用できます。これが似たような状況で私がすることです。
正しいオプションを設定し、を使用してそのオプションにアクセスできますmake menuconfig
。次のオプションページが最も重要な場合があります(一般的に重要なオプションはとしてマークされています!>
)。
- ターゲット
│ ┌───────────────────────────────────────────────── ─────────────────────┐│ !>│ │ ターゲットアーキテクチャ(FOOBAR) ---> │ │ │ │ ターゲットバイナリ形式(ELF) ---> │ │ !>│ │ ターゲットアーキテクチャバリアント(Gen42) ---> │ │ │ │ 対象 ABI(EABI) ---> │ │ │ │ 浮動小数点戦略(ソフト浮動小数点) ---> │ │ │ │ │ │
- ビルドオプション
!> │ │ ライブラリ(静的のみ) ---> │ │ │ │ ($(CONFIG_DIR)/local.mk) パッケージカバレッジファイルの場所 │ │ │ │() グローバルパッチディレクトリ │ │ │ │ アドバンス ---> │ │ │ └───────────────────────────────────────────────── ────────────────────────┘
- ツールチェーン
│ ┌───────────────────────────────────────────────── ─────────────────────┐│ │ │ ツールチェーンタイプ (Buildroot ツールチェーン) ---> │ │ │ │ (buildroot) カスタムツールバー ベンダー名│ │ │ │ *** カーネルヘッダオプション*** │ │ !>││カーネルヘッダファイル(手動で指定されたLinuxバージョン)--->││ !>││(2.6.99) Linux版││ !>│ │ カスタムカーネルヘッダファイルシリーズ(2.6.x) ---> │ │ │ │ C ライブラリ(uClibc) ---> │ │ │ │ *** uClibc オプション*** │ │ !>││uClibc Cライブラリバージョン(uClibc 0.9.33.x)--->││
make toolchain
次に、必要なツールを使用してツールチェーンを構築しますmake nc
。