回答編集履歴
1
正規表現による、条件にESTABLISHEDを追加
answer
CHANGED
@@ -4,48 +4,51 @@
|
|
4
4
|
なっている行の「外部アドレス」のIPアドレス部分を抽出する
|
5
5
|
|
6
6
|
```VBA
|
7
|
-
Sub
|
7
|
+
Sub test3()
|
8
8
|
|
9
|
-
|
9
|
+
Dim WSH, wExec, cmd As String, Result As String
|
10
|
-
Set WSH = CreateObject("WScript.Shell")
|
11
|
-
|
12
|
-
' 実行したいDOSコマンド
|
13
|
-
cmd = "netstat -n"
|
14
|
-
|
15
|
-
' DOSコマンドを実行
|
16
|
-
Set exec = WSH.exec("%ComSpec% /c " & cmd)
|
17
|
-
|
18
|
-
' DOSコマンドが終了するまで待機
|
19
|
-
Do While exec.Status = 0
|
20
|
-
DoEvents
|
21
|
-
Loop
|
22
|
-
|
23
|
-
' DOSコマンドの実行結果(標準出力)を取得
|
24
|
-
Result = exec.StdOut.ReadAll
|
25
|
-
|
26
|
-
' 取得した標準出力をメッセージボックスに表示
|
27
|
-
MsgBox Result
|
28
|
-
|
29
10
|
|
11
|
+
|
12
|
+
Set WSH = CreateObject("WScript.Shell")
|
13
|
+
|
30
|
-
|
14
|
+
' 実行したいDOSコマンド
|
31
|
-
|
15
|
+
cmd = "netstat -n"
|
32
|
-
|
33
|
-
|
16
|
+
|
34
|
-
buf = tmp(n) & vbCrLf
|
35
|
-
|
36
|
-
|
17
|
+
' DOSコマンドを実行
|
37
|
-
|
18
|
+
Set wExec = WSH.exec("%ComSpec% /c " & cmd)
|
19
|
+
|
20
|
+
' DOSコマンドが終了するまで待機
|
21
|
+
Do While wExec.Status = 0
|
22
|
+
DoEvents
|
23
|
+
Loop
|
24
|
+
|
25
|
+
' DOSコマンドの実行結果(標準出力)を取得
|
26
|
+
Result = wExec.StdOut.ReadAll
|
27
|
+
|
28
|
+
' 取得した標準出力をメッセージボックスに表示
|
29
|
+
MsgBox Result
|
38
30
|
|
39
|
-
buf2 = Split(buf, "3389")
|
40
|
-
buf3 = Split(buf2(1), ":")
|
41
|
-
Cells(5, 2) = Trim(buf3(0))
|
42
31
|
|
32
|
+
|
33
|
+
|
34
|
+
Set RE = CreateObject("VBScript.RegExp")
|
35
|
+
|
43
|
-
|
36
|
+
' 正規表現の条件を設定
|
37
|
+
RE.Pattern = "^\s*\S+\s+\S+:3389\s+(\S+):\d+\s+ESTABLISHED\s*$"
|
38
|
+
RE.MultiLine = True ' 複数行に対して検索する指定
|
39
|
+
|
44
|
-
|
40
|
+
' 検索
|
41
|
+
Set reMatch = RE.Execute(Result)
|
42
|
+
|
43
|
+
' 最初に条件に該当した行の、最初のカッコ内(=IPアドレス部分)を取り出し
|
44
|
+
Cells(7, 2) = reMatch(0).SubMatches.Item(0)
|
45
|
+
|
46
|
+
|
47
|
+
' オブジェクトを空に
|
48
|
+
Set reMatch = Nothing
|
49
|
+
Set RE = Nothing
|
50
|
+
Set wExec = Nothing
|
51
|
+
Set WSH = Nothing
|
45
52
|
|
46
|
-
' オブジェクトを空に
|
47
|
-
Set wExec = Nothing
|
48
|
-
Set WSH = Nothing
|
49
|
-
|
50
53
|
End Sub
|
51
54
|
```
|