是否有可能在CMD線檢查所有的網絡地址(ping或類似),看看哪些是採取/窗口具有有源器件:平在網絡中的所有地址,窗戶
即。這樣做的東西,如下所示:
for i = 0 to 255
ping 192.168.1.i //Print this
end
這顯然是僞代碼。我想知道是否有可能在Windows cmd中做這樣的事情。如果你不需要一個批處理文件,那會很好,但是我明白這是不可能的。
PS。另外請提及是否有一個程序來做到這一點,但它可以很好地在cmd中完成。
是否有可能在CMD線檢查所有的網絡地址(ping或類似),看看哪些是採取/窗口具有有源器件:平在網絡中的所有地址,窗戶
即。這樣做的東西,如下所示:
for i = 0 to 255
ping 192.168.1.i //Print this
end
這顯然是僞代碼。我想知道是否有可能在Windows cmd中做這樣的事情。如果你不需要一個批處理文件,那會很好,但是我明白這是不可能的。
PS。另外請提及是否有一個程序來做到這一點,但它可以很好地在cmd中完成。
打開命令提示符,然後鍵入以下內容:
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.10.%i | FIND /i "Reply">>c:\ipaddresses.txt
變化192.168.10以匹配自己的網絡。
通過使用-n 1,您只需要將1個數據包發送到每臺計算機,而不是通常的4個數據包。
上述命令將Ping 192.168.10.0網絡上的所有IP地址,並在C:\驅動器中創建一個名爲ipaddresses.txt的文本文檔。此文本文檔應僅包含回覆到ping請求的IP地址。
儘管完成時間還需要很長時間,但您也可以通過將-a添加到ping命令來將IP地址解析爲HOST名稱。
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.10.%i | FIND /i "Reply">>c:\ipaddresses.txt
這是Here
希望這有助於
你所要做的只是看看計算機是否連接到網絡並收集他們的IP地址。您可以使用angryIP掃描器:http://angryip.org/查看特定子網或子網組上使用的IP地址。
我發現這個工具在嘗試查看哪些IP地址不在我的DHCP內部時非常有用。
您提供的鏈接提供了404鏈接。http://www.angryip.org雖然工作正常,但不需要子路徑 – anurupr
這個帖子問了同樣的問題,但對於Linux的 - 你會發現它有幫助。 Send a ping to each IP on a subnet
nmap可能是使用的最佳工具,因爲它可以幫助識別主機操作系統並加快速度。它可用於nmap.org站點上的Windows平臺
是的,我在Linux中做了很多次,但不是在Windows中。 –
+1給nmap,很棒的工具! – logray
有些東西似乎在Windows 8上的批處理腳本中發生了變化,而DGG上面的解決方案現在會導致命令提示符崩潰。
以下解決方案爲我工作:
@echo off
set /a n=0
:repeat
set /a n+=1
echo 192.168.1.%n%
ping -n 1 -w 500 192.168.1.%n% | FIND /i "Reply">>ipaddresses.txt
if %n% lss 254 goto repeat
type ipaddresses.txt
不好,認爲你的命令提示符有問題。 –
在速度方面的最佳工具是的Nmap。
寫@命令提示符:
的Nmap -sn -oG ip.txt 192.168.1。1-255
這將只是ping通所有的IP地址在給定的範圍內,並將其存儲在簡單的文本文件
它只需秒掃描使用Nmap的主機。
在我的機器上花費的時間略長於2秒(也許10?);然而,上面的批處理文件大約需要十分鐘,我需要運行很多範圍搜索,所以這對我來說是最好的路線。 – slim
@ECHO OFF
IF "%SUBNET%"=="" SET SUBNET=10
:ARGUMENTS
ECHO SUBNET=%SUBNET%
ECHO ARGUMENT %1
IF "%1"=="SUM" GOTO SUM
IF "%1"=="SLOW" GOTO SLOW
IF "%1"=="ARP" GOTO ARP
IF "%1"=="FAST" GOTO FAST
REM PRINT ARP TABLE BY DEFAULT
:DEFAULT
ARP -a
GOTO END
REM METHOD 1 ADDRESS AT A TIME
:SLOW
ECHO START SCAN
ECHO %0 > ipaddresses.txt
DATE /T >> ipaddresses.txt
TIME /T >> ipaddresses.txt
FOR /L %%i IN (1,1,254) DO ping -a -n 2 192.168.%SUBNET%.%%i | FIND /i "TTL=" >> ipaddresses.txt
GOTO END
REM METHOD 2 MULTITASKING ALL ADDRESS AT SAME TIME
:FAST
ECHO START FAST SCANNING 192.168.%SUBNET%.X
set /a n=0
:FASTLOOP
set /a n+=1
ECHO 192.168.%SUBNET%.%n%
START CMD.exe /c call ipaddress.bat 192.168.%SUBNET%.%n%
IF %n% lss 254 GOTO FASTLOOP
GOTO END
:SUM
ECHO START SUM
ECHO %0 > ipaddresses.txt
DATE /T >> ipaddresses.txt
TIME /T >> ipaddresses.txt
FOR /L %%i IN (1,1,254) DO TYPE ip192.168.%SUBNET%.%%i.txt | FIND /i "TTL=" >> ipaddresses.txt
FOR /L %%i IN (1,1,254) DO DEL ip192.168.%SUBNET%.%%i.txt
type ipaddresses.txt
GOTO END
:ARP
ARP -a >> ipaddresses.txt
type ipaddresses.txt
GOTO END
:END
ECHO DONE WITH IP SCANNING
ECHO OPTION "%0 SLOW" FOR SCANNING 1 AT A TIME
ECHO OPTION "%0 SUM" FOR COMBINE ALL TO FILE
ECHO OPTION "%0 ARP" FOR ADD ARP - IP LIST
ECHO PARAMETER "SET SUBNET=X" FOR SUBNET
ECHO.
我知道這是一個遲到的反應,但這樣做的一種巧妙的方法就是ping通其填充你的本地的ARP緩存廣播地址。
這可以通過運行arp -a來顯示,它將列出你本地arp表中的所有地址。
ping 192.168.1.255
arp -a
希望這是一個不錯的選擇,人們可以使用。
我的設置'ping 192.168.1.255; arp -a'本身並沒有顯示動態ip,但是:'0..255 | ForEach-Object {ping 192.168.1。$ _}'後跟'arp -a'(powershell)。 –
請注意,並非所有設備都回復ping廣播地址 – Chriz
for /l %%a in (254, -1, 1) do (
for /l %%b in (1, 1, 254) do (
for %%c in (20, 168) do (
for %%e in (172, 192) do (
ping /n 1 %%e.%%c.%%b.%%a>>ping.txt
)
)
)
)
pause>nul
任何解釋? – matsjoyce
擴大和有益的補充egmackenzie的 「ARP -a」 解決方案的Windows -
Windows爲例WiFi網絡上尋找我的iPhone
(前:iPhone的WiFi禁用)
例如見下文:
這裏是關於使用 'ARP -d' 在這裏如果有興趣的一個很好的書面記錄 -
提供窗戶框是在同一個子網:
用於/ L%一個在(1,1,254)就開始平192.168.0。%一
這將完成不到15秒,
ARP -a
將返回任何活着的主機。
我知道在windows中最快的原生方式。
甚至更快:(for/L%a in(1,1,254)do @start/b ping 146.254.179。%a -w 100 -n 2> nul'。而你應該'arp -d'才能刪除任何舊的條目來獲取活着的主機。 – Stephan
我沒有知識,只是想知道......會ping 192.168.1。255'獲得子網中所有設備的響應? – FrancescoMM