
No.2ベストアンサー
- 回答日時:
こんにちは。
> イマイチ上手くできません。
何が上手くできないか、具体的に書いてほしいと思います。ロジックは
提示しましたよ。
....というのは横においといて。ソースを整形しました。私の好みで^^;
投稿用にインデントで全角 SP を使用してます。 VBS ファイルの場合は、
エディタで全角 SP 1個を半角 SP 2個または Tab に置換して下さい。
余談ですが、FSO の CreateTextFile で開いたファイルを閉じる処理の
追加、および CSV の保存先パス等はきちんと書いた方が良いですよ。
CSV の Close 処理は追加しておきましたが。。
Option Explicit
Call OutputIPAddress
Sub OutputIPAddress()
Const WQ = """"
Dim sComputer, sHostname, sql
Dim wmi, net, fso, csv, netAdapters, netAdapter, ip
sComputer = "."
Set wmi = GetObject("winmgmts:!\\" & sComputer & "\root\cimv2")
Set net = CreateObject("WScript.Network")
sHostname = UCase(net.ComputerName)
Set fso = CreateObject("Scripting.FileSystemObject")
Set csv = fso.CreateTextFile(sHostname & ".csv")
sql = ""
sql = sql & "Select * "
sql = sql & " From Win32_NetworkAdapterConfiguration"
sql = sql & " Where IPEnabled = True"
Set netAdapters = wmi.ExecQuery(sql)
For Each netAdapter In netAdapters
' // Host Name
csv.Write WQ & UCase(netAdapter.DNSHostName) & WQ & ","
' // Physical address
csv.Write WQ & UCase(netAdapter.MACAddress) & WQ & ","
' // IP Address
For Each ip In netAdapter.IPAddress
csv.Write WQ & IPZeroPadding(ip) & WQ & ","
Next
Next
csv.Close
Set netAdapters = Nothing
Set csv = Nothing: Set fso = Nothing
Set net = Nothing: Set wmi = Nothing
End Sub
Function IPZeroPadding(ByVal sIPAddress)
Dim v, i
v = Split(Trim(sIPAddress), ".")
For i = 0 To 3
v(i) = Right("000" & v(i), 3)
Next
sIPAddress = Join(v, ".")
IPZeroPadding = sIPAddress
End Function
KenKen_SP様
整形して頂いた作成したソースを参考に、
思い通りのScriptが作成できました。ありがとう御座いました。
VBScriptはまだ初心者なので、これからもっと勉強します。
また機会がありましたらご教授よろしくお願いします。
No.3
- 回答日時:
ああ、投稿後に気づきましたが、
' // IP Address
For Each ip In netAdapter.IPAddress()
csv.Write WQ & IPZeroPadding(ip) & WQ & ","
Next
csv.WriteBlankLines 1 ' <--- 追加
改行入れた方がいいかもしれませんね。
ネットワークカードの2枚刺し環境等考えられますから。
No.1
- 回答日時:
こんにちは。
環境が書かれておりませんので VB/VB(A) で回答します。
ほとんど Microsoft スクリプトセンターの流用です。。。
strComputer = "."
Set objWMIService = GetObject _
("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objAdapter In colAdapters
For Each ip In objAdapter.IPAddress
' // *** zero padding ****
v = Split(ip, ".")
For i = 0 To 3
v(i) = Right$("000" & v(i), 3)
Next i
Debug.Print Join$(v, ".")
Next
Next
こういうことですか?
この回答への補足
KenKen_SPさん、回答ありがとうございます。
環境はWindowsXPでvbsファイルを実行してホスト名やIPを取得する
Scriptを作成しています。
このような感じでIPを取得していますが上手く
ゼロパディングできればと。。。
strComputer = "."
Set objWMIService = GetObject ("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set WshNetwork = CreateObject("WScript.Network")
strCompName = WshNetwork.ComputerName
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFile = objFS.CreateTextFile(strCompName & ".csv")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objAdapter in colItems
objFile.Write """" & UCase(objAdapter.DNSHostName) & """" & ","'ホスト名
If Not IsNull(objAdapter.IPAddress) Then
For i = LBound(objAdapter.IPAddress) To UBound(objAdapter.IPAddress)
objFile.Write """" & objAdapter.IPAddress(i) & """" & ","'IPアドレス
Next
End If
Next
KenKen_SPさんに提示していただいたソースの
' // *** zero padding ****以下を
上手く組み合わせればできそうですが、初心者なのでイマイチ上手く
できません。
どうかよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Wi-Fi・無線LAN 無線ルーターのIPアドレスは、iPhoneのように簡単に変更できる??? 2 2022/04/02 19:00
- VPN 接続のたびにIPが変わるVPNサービスが知りたい 2 2022/06/27 02:34
- FTTH・光回線 グローバルIPアドレスの変更について 1 2022/04/23 05:32
- Windows 10 インストールしたてのVirtualBoxの仮想マシンにDHCPで割り振られるIPアドレスにつきまして 1 2023/05/03 14:46
- ハッキング・フィッシング詐欺 webサイトでIPアドレスを抜く方法を聞きたいです。 1 2022/06/09 17:33
- 固定IP パソコン(無線ルーター)のIPアドレスは、iPhoneのIPアドレスのように簡単に変更可能? 4 2022/04/02 13:00
- ツイキャス ツイキャスでアカウントロックされたとき、IPアドレスが自動取得で変更されても、PC端末が特定される? 1 2022/10/15 15:49
- その他(インターネット接続・インフラ) アプリ利用者を特定し、裁判に 2 2022/06/09 21:43
- プロバイダー・ISP IPアドレス開示について 6 2023/05/31 09:33
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルコーテーション付きでCSV...
-
VBAでcsvファイルもシートもあ...
-
ファイル名を変数で書きこむfwr...
-
pythonのこのエラーがわかりません
-
CSVファイルの比較と結果の取得...
-
シート内容の文字列を置換してV...
-
VB.netでShellExecuteがしたい
-
エクセルのデータをTAB区切りテ...
-
LibreOffice Calcのマクロで、...
-
CSVデータの文字列置換
-
複数のファイルをまたぐエクセ...
-
【ExcelVBA】300万件越えCSVか...
-
CSVで余計な空行が入る
-
バッチファイルでcsvファイルに...
-
バッチ処理 特定の文字以降を...
-
Fortran:列数の分からないデー...
-
[コンパイルエラー 修飾子が不...
-
BF2のCQBのMODが起動できない・...
-
INPUTタグ disabledの文字色を...
-
Dreamweaverでtitleタグ内の一...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロ 空白セルを無視し...
-
【ExcelVBA】300万件越えCSVか...
-
VBAでcsvファイルもシートもあ...
-
ダブルコーテーション付きでCSV...
-
ファイル名を変数で書きこむfwr...
-
複数のファイルをまたぐエクセ...
-
バッチファイルでcsvファイルに...
-
【C#】 csvファイルをバイナリ...
-
PowerShellでファイルの連結方法
-
vbaマクロについて 次のような...
-
CSVで余計な空行が入る
-
IPアドレスのゼロパディング
-
バッチファイルでCSVの中身を仕...
-
PowerShellからGhostscriptを動...
-
CSVデータの文字列置換
-
VBAで複数のCSVからレコードセ...
-
pythonでリストをCSVに出力する...
-
EXCEL→CSV保存時のダブルクォー...
-
StringGridの中身をCSV形式で保...
-
VBAで文字列を引数とするアドイ...
おすすめ情報