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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロ 空白セルを無視し...
-
VBAでcsvファイルもシートもあ...
-
【ExcelVBA】300万件越えCSVか...
-
VB.netでShellExecuteがしたい
-
ダブルコーテーション付きでCSV...
-
PowerShellからGhostscriptを動...
-
Pythonでcsvファイルの中身...
-
1つのキーに複数の値があるハ...
-
EXCEL→CSV保存時のダブルクォー...
-
ファイル名を変数で書きこむfwr...
-
【C#】 csvファイルをバイナリ...
-
CSVデータの文字列置換
-
pythonでリストをCSVに出力する...
-
複数のファイルをまたぐエクセ...
-
RubyでCSVファイルの1行目を削...
-
VBAで複数のCSVからレコードセ...
-
バッチ処理 特定の文字以降を...
-
fortranでNAのあるデータを読み...
-
VBA テキストボックスを選択状...
-
C言語のプログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロ 空白セルを無視し...
-
VBAでcsvファイルもシートもあ...
-
ダブルコーテーション付きでCSV...
-
【ExcelVBA】300万件越えCSVか...
-
ファイル名を変数で書きこむfwr...
-
EXCEL→CSV保存時のダブルクォー...
-
複数のファイルをまたぐエクセ...
-
VBAで複数のCSVからレコードセ...
-
CSVデータの文字列置換
-
VB.netでShellExecuteがしたい
-
VBA csvファイルのデータを...
-
Sikulix2.0.5(Jython2.7.3)でcs...
-
pythonでリストをCSVに出力する...
-
rubyを用いたCSVファイルの分割...
-
バッチファイルでcsvファイルに...
-
CSVで余計な空行が入る
-
Rubyを使用してcsvファイルを処...
-
VBAで文字列を引数とするアドイ...
-
VBScript等で、CSV内の各文字列...
-
PowerShellでファイルの連結方法
おすすめ情報