curl コマンドラインでインターネット

概要

コマンドラインで、URLを使ってファイルを受信または送信することできる。。。難しい。

使用例

実際にやってみると(WindowsのPowerShellの場合)

$ curl www.bit-link.co.jp
StatusCode : 200
StatusDescription : OK
Content :
<!-- 言語設定 --> <html lang="ja"> <head> <title>名古屋のiOSアプリ開発会社 ビットリンク</title> <!-- 説明 --> <meta name="description" content="株式会社ビットリンクは、名古屋でiOSアプリ開発をしている会社で す. 共同開発、自社開発したアプリあります!興味があ...
RawContent : HTTP/1.1 200 OK
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Range,Accept-Encoding
Accept-Ranges: none
Content-Type: text/html; charset=UTF-8
Date: Tue, 05 May 2020 09:49:02 GMT
Serv…
Forms : {}
Headers : {[Transfer-Encoding, chunked], [Connection, keep-alive], [Vary, Range,Accept-Encoding], [Accept-Ran
ges, none]…}
Images : {@{innerHTML=; innerText=; outerHTML=ビットリンクのロゴ; outerText=; tagName=IMG; alt=ビットリンクのロゴ; src=companyHome/images/comm
on/header/companyName.png}, @{innerHTML=; innerText=; outerHTML=ホームへ; outerText=; tagName=IMG; id=idHomeImage;
alt=ホームへ; src=companyHome/images/common/header/homeNavigation.png}, @{innerHTML=; innerText=; o
uterHTML=開発実績へ; outerText=; tagName=IMG; id=idDevelopImage; class=clsHeaderImag
e; alt=開発実績へ; src=companyHome/images/common/header/developmentNavigation.png}, @{innerHTML=; i
nnerText=; outerHTML=問い合わせへ; outerText=; tagName=IMG; id=idContactImage; class=cls
HeaderImage; alt=問い合わせへ; src=companyHome/images/common/header/contactNavigation.png}…}
InputFields : {}
Links : {@{innerHTML=ToyVideoの詳細ページへ ; innerText= ; outerHTML= ; outerText= ; tagName=A; class=clsImageAnchor; href=http
://www.digitalray.co.jp/service/smart/toyvideo/index.html}, @{innerHTML=exhaustSoundCheckerの詳細ページへ ; inner
Text= ; outerHTML= ; outerText= ; tagName=A; class=clsImageAnchor; href=companyHome/iphone/extChecker
/support.html}, @{innerHTML=カーメンテの詳細ページへ ; innerText= ; outerHTML= ; outerText= ; tagName=A; class=clsImageAnchor; href=com
panyHome/iphone/carMainte/support.html}, @{innerHTML=shoeLinkの詳細ページ ; innerText= ; outerHTML= ; outerText= ; tagName=A; class=clsImageAnchor; href=http:/
/shoelink.bit-link.co.jp}…}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 7646
$

HTTPヘッダのみ出力

-Iオプションをつけると、エラーになります。

$ curl -I
Invoke-WebRequest : パラメーター 'InFile' の引数が指定されていません。型 'System.String' のパラメーターを指定し、再試行
してください。
発生場所 行:1 文字:6
curl -I
~~ CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest]、ParameterBindingException
FullyQualifiedErrorId : MissingArgument,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

ヘルプで調べました。

$ curl -?
名前
Invoke-WebRequest
構文
Invoke-WebRequest [-Uri] []
エイリアス
iwr
wget
curl

エイリアスってありますね。curlは、Invoke-WebRequestが本物だということがわかりました。要は、Windowsのcurlは偽物だということがわかりました。だから、本家の-Iオプションもないんですね。

Windowsのcurl(偽物の場合)のヘッダー出力は

$ (curl http://www.bit-link.co.jp).Headers
Key Value
--- -----
Transfer-Encoding chunked
Connection keep-alive
Vary Range,Accept-Encoding
Accept-Ranges none
Content-Type text/html; charset=UTF-8
Date Wed, 06 May 2020 05:07:41 GMT
Server Apache
X-Powered-By PHP/5.6.21

できました。

centOS6の場合

$ curl -I http://bit-link.co.jp
HTTP/1.1 200 OK
Date: Wed, 06 May 2020 05:26:52 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.21
Vary: Range
Accept-Ranges: none
Server: Apache

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください