今日もガクリ('A`)
きっと明日もまたガクリ?('A`)
Microsoft Update カタログ サイトから情報取得スクリプト Version 0.2.1

概要

Microsoft Update カタログ サイトが Internet Explorer の ActiveX の呪いから開放され、私が使用してる UA Firefox Quantum でもアクセスできるようになったので、ナレッジベース番号(以下、KB番号 と称します) リストを元に情報を取得する PHP スクリプトを作りました

前提動作環境

  • PHP 5.6.37 が動作する事。必要な extension は以下の通りです。7.x 系では確認していません
    • php_mbstring.dll
    • php_exif.dll
    • php_pdo_sqlite.dll
    多分、上記3つの extension があれば動作すると思います…
  • Firefox で Microsoft Update カタログ サイト をアクセスし、Firefox ユーザープロファイルに cookies.sqlite ファイルがある事。つまり、スクリプト内で Cookie を取得するのに、Firefox のユーザープロファイルにある cookies.sqlite から Cookie を取得している為です

制限事項

  • 実際に Microsoft Update カタログ サイトから 更新プログラムをダウンロードするものではありません。当初はこれを前提として考えていましたが、Microsoft Update カタログ サイト 自体が IIS とかいうどうしようもなく遅い Web サーバーで運用されている以上、更新プログラムをダウンロードできる URI を出力するという方向に切り換えました
  • 検索結果が複数ページの際は最初のページが検索対象となります。全てのページから情報を取得して、絞込み検索を行い…と、技術的には可能ですが Microsoft Update カタログ サイト 自体が遅いのと検索結果の次ページを取得するのに POST メソッドを使用しているのですが、Firefox の ウェブコンソールを見て渡しているデータを見て(今は)やる気なくなりました('A`)

ダウンロードとインストール

ようやくまともな形に仕上がったので、正式リリースします。以下のファイルをダウンロードし、適当なディレクトリに解凍します

内容

  • MicrosoftUpdateSearch.php
    スクリプト本体
  • MicrosoftUpdateSearch.ini
    設定ファイル
  • MicrosoftUpdateSearch.h.txt
    HTTP リクエストする際の追加ヘッダーを記述しておくファイル
  • MicrosoftUpdateSearch.List.txt
    実際に情報を取得したい KB番号 を記述したファイル。ファイル名は任意に指定できます

MicrosoftUpdateSearch.h.txt

このファイルはスクリプト本体(MicrosoftUpdateSearch.php) と同じディレクトリに置いておく必要があります

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept-Language: ja,en;q=0.7,en-US;q=0.3
DNT: 1

このファイルの内容そのものが HTTP リクエストする際のヘッダーとして追加されます。ファイル形式は UTF-8, LF(改行), BOM 無しが望ましいです

MicrosoftUpdateSearch.ini

このファイルはスクリプト本体(MicrosoftUpdateSearch.php) と同じディレクトリに置いておく必要があります

; 初期設定ファイル
;   このファイルは MicrosoftUpdateSearch.php と同じディレクトリある必要があります
;   行頭 ; で始まる行、空行は無視されます
;   設定されるパラメーター名は大文字小文字区別されます

; Microsoft Update カタログ サイト設定
URI          = 'https://www.catalog.update.microsoft.com/'
Serach_URI   = 'https://www.catalog.update.microsoft.com/Search.aspx'
Detail_URI   = 'https://www.catalog.update.microsoft.com/ScopedViewInline.aspx?updateid='
Download_URI = 'https://www.catalog.update.microsoft.com/DownloadDialog.aspx'

; 検索語(主にKB番号) に付与する接尾語
Search_Sufix = ' Windows 7 x64'

; 検索結果を絞り込む為の除外リスト
;   評価優先順位は左から右
;   否定を指定する場合は接頭語に ! を付与する
;   複数指定する場合は , で区切る
;
;   下記の例と言うと、Embedded を含む検索結果は除外され、
;   次に Windows 7 を含まない検索結果が除外されます
Search_ExcludeList = 'Embedded','!Windows 7'

; ログファイルの設定
LogFile = 'MictosoftUpdateSearch.' . date( 'Y-m-d_His' ) . '.log'

; コンソール出力するかどうかの設定 On ならば、コンソール出力される
LogEcho = On

; コンソール出力する際の文字エンコーディング
LogEchoEncode = 'SJIS'

; ログファイルに出力する際の文字エンコーディング
LogFileEncode = 'UTF-8'

; 個々のダウンロード URI に対するログ出力追加オプション
;   使用できる変数は以下に示します
;     $n             改行(0x0d)
;     $KB            ナレッジベース番号(KB番号)
;     $Date          最終更新日時
;     $Title         タイトル
;     $Product       製品
;     $Category      分類
;     $Version       バージョン
;     $Detail_URI    詳細取得先 URI
;     $Description   概要
;     $Detail        詳細
;     $Download_URI  更新プログラムの URI
LogOutOptions = '    <a href="$Download_URI" title="$Detail">$KB</a>$n','    <tr><td><a href="$Download_URI" title="$Detail">$KB</a></td><td>$Detail</td></tr>$n$n'

; ナレッジベース番号(KB番号) を記述したファイル
KB_ListFile = 'MicrosoftUpdateSearch.List.txt'

KB番号 リストファイル

; ナレッジベース番号(KB番号) を記述したファイル
;   このファイルはスクリプトを動かすディレクトリに置きます
;   行頭 ; で始まる行、空行は無視されます

; 複数にまたがって記述する際は以下の様に記述します
KB890830,
KB4344152,
KB4343900',

; 単一行で記述する場合は以下の様に記述します
; , 文字で区切ります
KB2990941,KB3087873,KB2533552,KB2534366,KB2670838,KB2732059,KB2773072,KB2834140

To Do

今後の修正予定です

  • __construct 部分で初期化している変数を外部のファイルから取り込む
  • コマンドラインパラメーター $_SERVER['argv'] を有効活用する様にする
internet, PC, PHP, software, Windowscomments (0)trackbacks (0) – pingbacks(0) – (3,575)
feel free of the comment please.

trackback URL of this article
QRcode of this article
qrcode:article
more information of this article

post date

2018年08月31日(金) 00:00:19

update

2018年09月03日(月) 17:11:00

tags

, , , ,

contents
most viewed (1183724)
categories
archives
recent posts
recent updates
recent comments
recent trackbacks
912T ASUSTeK ASUSTeK Crosshair IV Extreme blog CSS DARK SOULS DARK SOULS 3 Darksouls3 DarksoulsIII DARK SOULS III DISM Euro Truck Simulator 2 Everquest II firefox foobar2000 game Install internet KB2990941 KB3087873 mod panels ui PCゲーム PHP PX-Q3PE Raid skin SoftBank software SpeedFan Spinel Steam TPS trailer truck TvRock TVTest Windows Windows 7 Win Toolkit WordPress インストール ダークソウルズ 初音ミク 窓辺ななみ
mobile
qrcode:home
profile
曇り札幌市中央区 ‘ 曇り
気温: 10℃ ‘ 湿度: 66%
recommends
Valid XHTML 1.0 Transitional Valid CSS X.X
RSS 2.0 RSS 0.92
RDF/RSS ATOM
get Firefox 2 get Opera
ie