2016-11-14 15 views
0

私のWebページでは、ブラウザ上にWebページの単純なテキストとして自分のIPアドレスだけが表示される簡単なPHPスクリプトを作成します。だから、PowerShellでInvoke-WebRequestの内容を文字列と比較する方法

私はPowerShellでこのコマンドを使用する場合:私は、変数の種類でチェックすると

PS C:\Users\user> $ip 
193.60.50.55 

$ip = Invoke-WebRequest https://www.mypage.com 
$ip 

私はこの結果を得ることができます。メソッドGetType()フルネーム私が取得します:

PS C:\Users\user> $ip.GetType().FullName 
System.String 

と私は同じ文字列

と比較しようとした場合私は「偽」結果を得る
PS C:\Users\user> $ip = Invoke-WebRequest https://www.mypage.com 
$ip2 = "193.60.50.55" 
$ip -eq $ip2 

、私はまた、-matchと様にしてみてくださいしかし、結果は常に間違っている

+0

私は '$ ip = Invoke-WebRequest https:// www.mypage.com'がどのように単一の文字列を返しているのか混乱しています、それはプロパティのトンを持つオブジェクトを返すべきです、' $ ip | Get-Member'? –

答えて

2

Invoke-WebRequestpointsマイクGaruccioとして戻ってオブジェクトをどのような任意のアイデア偽

です。おそらく何らかの理由でサイレントタイプの変換(引用符を使用するか、$ipを前に[string]と宣言している)が発生したため、文字列が表示されています。

例:

$ip = Invoke-WebRequest -Uri http://icanhazip.com/ -UseBasicParsing 
"$ip" 

1.2.3.4 

- または -

[string]$ip = '' 
$ip = Invoke-WebRequest -Uri http://icanhazip.com/ -UseBasicParsing 
$ip 

1.2.3.4 

これは、あなたが何をすべきかです:

# Get responce content as string 
$ip = (Invoke-WebRequest -Uri http://icanhazip.com/ -UseBasicParsing).Content 

# Trim newlines and compare 
$ip.Trim() -eq '1.2.3.4' 

ワンライナー:

(Invoke-WebRequest -Uri http://icanhazip.com/ -UseBasicParsing).Content.Trim() -eq '1.2.3.4' 
+0

はい、これはそれです。どうもありがとう! – DaniKR

関連する問題