出于安全原因,我想為沒有外包的員工創建一個警報軟體。我找到了一種使用 msg 命令從 cmd 發送警報的方法,我沒有測驗此代碼,但我從Microsoft站點生成了它,如果有任何錯誤,請告訴我
msg @allip.txt "test"
對于 IP 串列,我arp -a使用 cmd找到了一個解決方案,但我必須像這樣清除檔案中的額外資訊,問題是如果我在文本中保留額外資訊,代碼將不起作用
Interface: 192.168.1.140 --- 0x3
Internet Address Physical Address Type
192.168.1.1 00-00-00-00-00-00 dynamic
192.168.1.61 00-00-00-00-00-00 dynamic
192.168.1.255 00-00-00-00-00-00 static
...
有沒有辦法只保存互聯網地址表
uj5u.com熱心網友回復:
要提取所有快取的IP 地址 - 這是報告 - 使用以下內容:arp.exe /a
- 注:通過鏈接的檔案來看,這些快取的地址,與他們的“自己解決以太網或令牌環物理地址”一起保存,以保持每個網路配接器一個單獨的表,是手頭上的計算機的IP地址已積極跟在當前OS會話,這是不一樣的全套連接到網路的計算機的。
要掃描整個子網以獲取可訪問的IP 地址,請考慮使用第三方功能,例如Ping-Subnet.
((arp /a) -match '^\s \d').ForEach({ (-split $_)[0] })
要保存到檔案,例如ips.txt,附加> ips.txt或| Set-Content ips.txt。
筆記:
在Windows PowerShell 中,您將通過這些檔案保存方法獲得不同的字符編碼(UTF-16 LE ("Unicode") for
>/ ANSI forSet-Content)在PowerShell (Core) 7 中,默認情況下(一致)您將獲得無 BOM 的 UTF-8 檔案。
使用Set-Content的-Encoding引數來明確控制編碼。
說明:
-match'^\s \d'過濾輸出的行陣列,arp /a以僅包含以 (^)開頭的行,至少包含一個 () 空白字符。(\),后跟十進制數字 (\d) - 這將輸出行限制為顯示快取表條目的行。.ForEach(){ ... }為每個匹配的行執行一個腳本塊 ( )。的一元形式
-split,字串拆分運算子,將每個匹配的行按空格拆分為一個欄位陣列,index[0]回傳第一個這樣的欄位。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/312617.html
