###概要
現在、PowerShellにてプログラムを作成しております。
やりたいこととしては、
通信相手と指定したポート(TCP)にて通信可能かどうか確認させたいです。
具体的には、「System.Net.Sockets.TcpClient」メソッドを利用して、
セッション確立が可能であるかを確認し、
その結果を取得しております。
稼働自体は行えており、
結果も取得できておりますが、一部想定外の結果が返されることがあります。
###発生している問題・エラーメッセージ
送信元PCのWindowsF/Wの送信ルールに以下のルールを新規追加する。
・192.168.1.2への送信に対し、10000ポート(TCP)をブロックする
上記ルールを追加しても、プログラムの処理結果に「True」が返されます。
###該当のソースコード
言語:PowerShell
通信相手のIP:192.168.1.2
自分のIP:192.168.1.1
ポート:20000
タイムアウト値:2秒
結果変数:$CONNECTRSULT
$CONNECT=New-Object System.Net.Sockets.TcpClient
$VMCONNECT=$CONNECT.BeginConnect("192.168.1.2","10000",$null,$null)
$CONNECTRSULT=$VMCONNECT.AsyncWaitHandle.WaitOne("2000")
echo $CONNECTRSULT
if(!($CONNECTRSULT)){
$CONNECT.Close()
exit
}
$CONNECT.EndConnect($VMCONNECT)
$CONNECT.Close()
###試したこと
送信先PCのWindowsF/Wの受信ルールに以下のルールを新規追加する。
・192.168.1.1からの受信に対して、10000ポート(TCP)をブロックする。
上記ルールON・OFFによりプログラムの処理結果が変動します。
これは想定内の動作です。
これによりWindowsF/Wの影響を受けることはわかりました。
あなたの回答
tips
プレビュー