2

dhcp leave 情報を (プレーンテキストとして、html 形式ではなく) 表示する Web サーバー上に php スクリプトがあります。出力は、コンマで区切られた次の形式になります。

dnsname,leavetime,macaddress,ipaddress

私は、invoke-webrequest powershell コマンドを使用してこの情報を解析し、MAC アドレスを取得できるようにしたいと考えています。

次のコードを試しました:

invoke-webrequest "http://www.xxx.xxx"

コンソールへの出力は次のとおりです。

StatusCode        : 200
StatusDescription : OK
Content           : *hostname*,in 7 days ,**Mac Address**,*ip address*

RawContent        : HTTP/1.1 200 OK
                Keep-Alive: timeout=2, max=100
                Connection: Keep-Alive
                Content-Length: 50
                Content-Type: text/plain; charset=ISO-8859-1
                Date: Mon, 25 Feb 2013 12:04:33 GMT
                Server: Apache

                ega008...
Forms             :
Headers           : {[Keep-Alive, timeout=2, max=100], [Connection, Keep-Alive],        [Content-Length, 50], [Content-Type,
                text/plain; charset=ISO-8859-1]...}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        :
RawContentLength  : 50

これらすべての代わりに、私が欲しいのはMACアドレスだけです(太字で強調表示)

どんな助けでも大歓迎です。

ありがとう。

4

2 に答える 2

2

あなたは使用する必要がありますSystem.Net.Webclient

$webclient = new-object System.Net.WebClient
$webpage = $webclient.DownloadString("http://www.xxx.xxx")
于 2013-02-25T13:59:19.520 に答える
1

ダウンロードしたコンテンツを文字列として利用できる場合 (おそらく、CharlesB が提案する WebClient を使用)、次のようにキー/値ペアの辞書に分割できます。

$data=@{}
$webpage.split("`n") |% { $record=$_.split(":"); if($record[1]) { $data[$record[0].trim()]=$record[1].trim() }}

次に、「コンテンツ」行の値を配列に分割して取得できます。

$content = $data["Content"].split(",")
#
# retrieve the mac with:
$content[2]
于 2013-02-25T14:15:09.167 に答える