それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

curl

curlとgrep でHTMLから指定IDを取り出す。/ 後方参照の代替

grep で HTMLタグの値を取り出す。 curl と組み合わせて戦う curl $URL | grep -oP '(?<=name="post_id" type="hidden" value=").+(?=" />)' grep では後方参照がいい感じに取れないので、「後読み(lookbehind)や先読み(lookahead)」を使って対応するこ…

curl って telnet 出来たのか。

curl って telnet 出来たのか。 curl telnet://www.google.com:80 GET / HTTP/1.1 Host: www.google.com telnet コマンドをインストールしなくても、curlさえあればtelnetができる。 最近はtelnetコマンドをインストールしなくちゃいけないのだが、インスト…

curlが404でif文を判定する。exit code を httpステータスに従わせる。

curlは 接続に成功したら exit code == 0 である。 接続に成功したら、404・500でも 結果は 0 になる。 curl -s http://example.tld ; echo $? httpステータスコードを検証する 接続に成功し、HTTP取得に成功したときだけ何かをしたい。 curl --fail -…

curl コマンドでプロキシ設定をする。解除する

http プロキシで通信監視は、まだまだあります。 HTTPSが普及し尽くしたいまプロキシを入れるメリットはあまりないと思うのですが。 いまでも、念の為にプロキシを入れることは日常です。 apt / yum / dnf などでプロキシ設定しないとだめだったり、プロキシ…

curl で/etc/hosts書き換えずにhttps 接続(証明書)を確認する。curl だけで resolve

サーバーの移転時にHTTPSの証明書を確認したい 毎回毎回、/etc/hostsを書き換えると不便極まりないので、代替手段はないか調べた。 openssl には servername オプションがあるのでcurlでもサーバー名を解決するオプションがないか調べたら。あった。 curl だ…

curl でDoHを使ってDNS問い合わせをしてみる

DoH をcurlでやる github を見ていたら、curl にDoHのサポートが入ってることを知った。早速使ってみました。 DNS問い合わせを curl で DoH する。 使うDoHサーバーはcloudflare を選びました。 curl -v --doh-url https://cloudflare-dns.com/dns-query t.c…

curl でSMTP経由のメール送信

curl で smtp 経由でメールを送信する。 curl -v --url 'smtp://192.168.1.1:2525' \ --upload-file sample-mail.txt \ --mail-from takuya@example.com \ --mail-rcpt takuya@example.com curl で送信できるわこれ。 smtp をTELNETで接続してメール送信テス…

curlコマンドで ~/.curlrc の設定を有効無効を切り替える

curlrc でよく使うオプションを入れておくと便利 curl でよく使う設定をまとめる ~/.curlrc - それマグで! 便利なのですが、ついつい入れすぎてしまって、いざというときに不要なファイルを消せない。 どういうことかというと、~/.curlrc が存在してると最…

ssh の転送速度を測定をしてみる

SSHの速度を測定しようと思い立った。 なんかネットワークが遅いので、SSHでの速度測定をしてみることに。 速度測定するコマンド ファイルの準備 dd if=/dev/urandom of=test.img bs=1k count=1000000 転送 cat test.img | ssh host.tld 'dd of=/dev/null ' …

curl で api に画像をアップロードするのに、base64をする。

application/json でファイルを送信する curl でファイルアップロードをしようとしたら、Content-Typeを text/json で、本文にJSONで画像を入れろって言われたの。 echo {\"image\": \"$( base64 -w0 path_to_file )\" } | \ curl -X POST -H "Content-Type:…

curlコマンドで速度制限(スピードリミッタ)をつける

curl でファイルを次々と取得してて curl でパッケージを取得したり、転送したりしてて他の作業に支障がでることがあります。 curl 万能なので使いすぎます。 speed limit をつけることで curl を速度制限出来ます。 速度上限をつけることで、穏やかに、急が…

curl で get/post/put/delete などメソッドを指定したりJSONをPOSTしたり

curl でHTTPのMethod指定する GETはすぐ覚えらるけど、GETと同等に使うPOSTはちょっとコツが居る。 curl で POST などの HTTP のメソッドを指定するには、 -X HTTP_METHOD をつけて method を指定する。 curl -X GET curl -X DELETE curl -X POST --data 'na…

curl でよく使う設定をまとめる ~/.curlrc

curl の基本設定ファイルを作ることが出来る ~/.curlrc Default config file, see -K, --config for details. .curlrc に書く書き方は -K で指定する config ファイルと同じ curl の毎回指定するのめんどくさいオプションを書いておくと楽 とくに、CookieやU…

curl で ファイルダウンロード名を自動的につける(disposition 名にする)

ファイルダウンロードURLをcurl した時に、名前が・・・ curl -L -o 'https://docs.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA&export=download' つらい・・・ takuya@:~$ ls uc\?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA\&export=download -rw-rw-r-- 1 takuy…

curlでカスタム HTTP ヘッダー

curl でカスタムHTTPヘッダを送信するには curl -H "X-MY-HEADER : takuya" http://example.com ヘッダオプション、-H に直接HEADERの中身を書くといい。 ときどきあれ?ってなるので、忘備録。 curl にかんしてのまとめ curl でこのブロクを検索 curl カテ…

curl でクッキー送信

curl コマンドで Cookie を送信するには オプションを使う curl -b name=value http://example.com 複数のCookie を送信するには curl -b 'name=1&arg=value' http://example.com/ 複数書くときに、- b を複数記述しても動作しない。 curl -b name=1 -b arg=…

curl でURLを一気に処理して、存在しないURLを探す。

特定のURLがいっぱいあるときに、まとめて、チェックしたい ruby でurl つくって、open-uri/mechanizeなどで処理するのすら煩わしい。昔書いたブロク記事から使えそうな物をピックアップ bashで連番作る for n in {1..100}; do printf "http://example.com/%…

curl-kでSSLエラー回避(と言うか無視

https へ curl でオレオレ証明書エラー そりゃ、まぁ。。。証明書を入れればいいんだけど。証明書そのものをテストしてる時とかに不便なんです。 curl -k https://example.com -k は insecure オプション SSLを無視するというか、insecureであることを受容す…

curl コマンドでWEBリクエストするC言語のソースを自動生成

curl の実行を再現するC言語を作る、--libcurl オプション curl に libcurl オプションをつけると、C言語のソースが出力される。なにこれ楽しい。 使い方例 次のように --libcurl ファイル名 をオプションにつける. curl 'https://api.ipify.org?format=json…

curl コマンドでリダイレクト時にcookie の維持

リダイレクトでcookie 発行される系のデバッグ クッキーの書き込みファイルと読み込みファイルを同時に指定する。 curl -b my.cookie -c my.cookie -L http://example.com 簡単だけど、ググってしまったので反省を込めてメモ。 仕組み cookieを使ってコンテ…

curlコマンドで連番サイトの全データを取得する

Mechanizeとかで息切れしている人たちに捧げる。 curl には連番を処理する機能があって。 連番(sequence)はこれでまとめ得取得できちゃう。 curl 'http://www.jr-odekake.net/eki/top.php?id=0610[001-999]' これで http://www.jr-odekake.net/eki/top.php?i…

curl コマンドでwgetみたいにヘッダのファイル名で保存するオプション

curl コマンドで ファイルを保存する事もできる。 もうwget 要らないかも? curl -L -O http://magpi.techjeeper.com/The-MagPi-issue-26-en.pdf これでThe-MagPi-issue-26-en.pdfというPDFが保存される。 ただし-O はリダイレクトを考慮しないので curl -O …

curl によるSSL・TLS警告を無視 (自己署名証明書や古いなど

WiFiログインをcurl でやろうとしたら。。。 WiFiのログインをCurlコマンドでしようとしたら、証明書エラーが出る。 curl で証明書関連の警告無視 SSLのCA確認が取れない自己証明など、SSL証明書関連の警告を無視して無理やり接続するには curl --insecure h…

curl コマンドで、特定の(ヘッダ)情報だけを取り出す。レスポンスヘッダ write-out (-w )

curl は色々とオプションがあるので、使い込むと楽しい -w オプションで、必要な物を取り出す。 レスポンスコード curl -I -s -o /dev/null http://store.apple.com -w '%{http_code}\n' 301 ダウンロード・サイズ curl -L -s -o /dev/null http://store.app…

PaypalのInvocing をphp cURLで書いてみた

php の curl が扱えるようになったので cURLの関数が便利だったので、 PayPalの invocing を管理するAPIの呼び出し実装を作った。 phpのcurl ライブラリの使い方のHTTP実例いっぱい - それマグで! paypal invocing php gist0401494d266b35450ce4 使い方 ま…

phpのcurl ライブラリの使い方のHTTP実例いっぱい-post や json でAPIリクエストとか

cURL ライブラリ php には cURL ライブラリ があって、このCライブラリのラッパーを使うことでほとんどのネットワークリクエストを扱うことが出来る。 cURLの本家は http://curl.haxx.se/ で、ここでlibcurl を一式準備してC言語からネットワークリクエスト…

cURL の curl コマンドで、ファイルアップロード

ファイルアップロードのテストが面倒になったら curl curl http://takuya.example.com/~takuya/upload/info -F name=@path/to/file はい、これだけ。楽ちん。 cURL はやっぱり便利。 ちなみに、フォーム情報や、ヘッダ情報はも一緒に送信できる。 セッション…

ブラウザのリクエストをcURLで簡単にテストする( google Chrome )

Chromeの要素の検証を見ていたら、Copy as cURLなるものがある。 copy as curl Inspect Element の networkタブで、各ファイルを右クリックすると出てくる。 コピーした結果がこちら curl 'http://netdna.bootstrapcdn.com/bootstrap/3.0.3/fonts/glyphicons…

curl で連番を一気にダウンロード

bash で for ループや、ruby で eachするのも不便なので。 curl -O http://www.hitachi-koki.co.jp/powertools/dbook/diy/pdf/[1-100].pdf 簡単 curl の連番の例 curl -O http://example.com/[a-z].jpgcurl -O http://example.com/[1-100].jpg printf でフォ…

curl で結果が表示されないときはリダイレクトを見てみましょう

curl をしても値が空っぽの時があると思います。大抵の人はcurl はなんかオカシイ!といってここでwgetを使ってしまうんですが。 ちょっとまってそれリダイレクトかもよ! curl は正直なクライアントなので、リダイレクトはリダイレクトの指定が必要です。 …