Gibt es eine Befehlszeilenmethode, um Pings an jeden Computer in einem Subnetz zu senden? WieEinen Ping an jede IP in einem Subnetz senden
for(int i = 1; i < 254; i++)
ping(192.168.1.i);
arp Auflösung zu erzwingen?
Gibt es eine Befehlszeilenmethode, um Pings an jeden Computer in einem Subnetz zu senden? WieEinen Ping an jede IP in einem Subnetz senden
for(int i = 1; i < 254; i++)
ping(192.168.1.i);
arp Auflösung zu erzwingen?
Ich würde die Verwendung von vorschlagen mit der Maske Option fping, da Sie sich nicht in Ping beschränken werden.
fping -g 192.168.1.0/24
Die Antwort wird einfach in einem Skript zu analysieren:
192.168.1.1 is alive
192.168.1.2 is alive
192.168.1.3 is alive
192.168.1.5 is alive
...
192.168.1.4 is unreachable
192.168.1.6 is unreachable
192.168.1.7 is unreachable
...
Hinweis: -a
das Argument verwendet, wird der Ausgang erreichbar IP-Adressen beschränken, können Sie es sonst fping wird auch nutzen wollen Druck unerreichbare Adressen:
fping -a -g 192.168.1.0/24
Von Mann:
fping unterscheidet sich von ping, dass Sie eine beliebige Anzahl von Zielen auf der Kommandozeile angeben können, oder eine Datei angeben, die Listen von Zielen enthält ping. Anstatt an ein Ziel zu senden, bis es Timeout oder Antworten, sendet fping senden Sie ein Ping-Paket und weiter zum nächsten Ziel in einer Round-Robin-Mode.
Weitere Informationen: http://fping.org/
Auch fping ist viel leichter als nmap – urnenfeld
Überprüfen Sie, ob this blog post hat, was Sie brauchen.
Broadcast-ping:
$ ping 192.168.1.255
PING 192.168.1.255 (192.168.1.255): 56 data bytes
64 bytes from 192.168.1.154: icmp_seq=0 ttl=64 time=0.104 ms
64 bytes from 192.168.1.51: icmp_seq=0 ttl=64 time=2.058 ms (DUP!)
64 bytes from 192.168.1.151: icmp_seq=0 ttl=64 time=2.135 ms (DUP!)
...
(eine -b
Option auf Linux Add)
Hinweis: Abhängig von der Version/Plattform –
müssen Sie möglicherweise ein "-b" hinzufügen. Außerdem reagieren nicht alle Betriebssysteme auf einen Broadcast-Ping (standardmäßig). –
In IPv6 verwenden Sie "ff02 :: 1". – Keltia
In Bash-Shell:
#!/bin/sh
COUNTER=1
while [ $COUNTER -lt 254 ]
do
ping 192.168.1.$COUNTER -c 1
COUNTER=$(($COUNTER + 1))
done
möchten Sie vielleicht eine "-c 1" -Option zu dem Ping-Befehl dort hinzufügen ... –
unter Linux, denke ich ping -b 192.168.1.255 funktioniert (192.168.1.255 ist die Broadcast-Adresse für 192.168.1. *) aber IIRC, die nicht unter Windows funktioniert.
Das Kommandozeilenprogramm nmap kann dies auch tun:
nmap -sP 192.168.1.*
Nicht alle Maschinen haben nmap
zur Verfügung, aber es ist ein wunderbares Werkzeug für jeden Netzwerk-Discovery, und sicherlich besser als durch unabhängige ping
Befehle laufen.
$ nmap -n -sP 10.0.0.0/24 Starting Nmap 4.20 (http://insecure.org) at 2009-02-02 07:41 CST Host 10.0.0.1 appears to be up. Host 10.0.0.10 appears to be up. Host 10.0.0.104 appears to be up. Host 10.0.0.124 appears to be up. Host 10.0.0.125 appears to be up. Host 10.0.0.129 appears to be up. Nmap finished: 256 IP addresses (6 hosts up) scanned in 2.365 seconds
Beste Antwort auf dem neuesten Stand, weil es die erste ist kompatibel mit der Realität, dass nicht alle Subnetze die gleiche Größe haben, und die Verwendung der/Die 24-Notation kann auf Subnetze beliebiger Größe verallgemeinert werden. –
Dies ist die bessere Antwort als die Ausnahme, da sie flexibler ist und sich an verschiedene Netzwerke anpasst. – charmoniumQ
Das sollte wirklich die akzeptierte Antwort sein. Es ist sauberer und viel flexibler. – Routhinator
#!/bin/sh
COUNTER=$1
while [ $COUNTER -lt 254 ]
do
echo $COUNTER
ping -c 1 192.168.1.$COUNTER | grep 'ms'
COUNTER=$(($COUNTER + 1))
done
#specify start number like this: ./ping.sh 1
#then run another few instances to cover more ground
#aka one at 1, another at 100, another at 200
#this just finds addresses quicker. will only print ttl info when an address resolves
FOR /L %i in (1,1,254) DO PING 192.168.1.%i -n 1 -w 100 | for /f "tokens=3 delims=: " %j in ('find /i "TTL="') do echo %j>>IPsOnline.txt
Dies ist eine Modifikation von @ david-rodríguez-dribeas beantworten oben, die parallel alle Pings läuft (viel schneller) und zeigt nur die Ausgabe für IP-Adressen, die die Ping-Rückkehr .
export COUNTER=1
while [ $COUNTER -lt 255 ]
do
ping $1$COUNTER -c 1 -w 400 | grep -B 1 "Lost = 0" &
COUNTER=$(($COUNTER + 1))
done
for i in $(seq 1 254); do ping -c1 192.168.11.$i; done
Ich kam gerade um diese Frage, aber die Antworten befriedigte mich nicht. Also rollte ich meine eigene:
echo $(seq 254) | xargs -P255 -I% -d" " ping -W 1 -c 1 192.168.0.% | grep -E "[0-1].*?:"
-W 1
"). So wird es in 1s fertig :)64 bytes from 192.168.0.16: icmp_seq=1 ttl=64 time=0.019 ms 64 bytes from 192.168.0.12: icmp_seq=1 ttl=64 time=1.78 ms 64 bytes from 192.168.0.21: icmp_seq=1 ttl=64 time=2.43 ms 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.97 ms 64 bytes from 192.168.0.11: icmp_seq=1 ttl=64 time=619 ms
Edit: Und hier ist das gleiche wie Skript, denn wenn Ihr xargs nicht über der -P-flag, wie es der Fall in openwrt ist (i gerade herausgefunden)
for i in $(seq 255);
do
ping -W 1 -c 1 10.0.0.$i | grep 'from' &
done
for i in $(seq 1 254); do ping -c1 -t 1 192.168.11.$i; done
Ein -t 1
hinzufügen wartet nur eine Sekunde vor dem Beenden. Dies verbessert die Geschwindigkeit sehr, wenn Sie nur ein paar Geräte mit diesem Subnetz verbunden haben.
Ausgezeichnet. 1) Seine Native 2) Ich muss nicht alle diese Mist-Tools in Arduino installieren. – YumYumYum
Ich kam spät, aber hier ist ein kleines Skript, das ich für diesen Zweck gemacht habe, dass ich in Windows PowerShell laufen. Sie sollten in der Lage sein, es in die ISE zu kopieren und einzufügen. Dies führt dann den Befehl arp aus und speichert die Ergebnisse in einer TXT-Datei und öffnet sie im Editor.
# Declare Variables
$MyIpAddress
$MyIpAddressLast
# Declare Variable And Get User Inputs
$IpFirstThree=Read-Host 'What is the first three octects of you IP addresses please include the last period?'
$IpStart=Read-Host 'Which IP Address do you want to start with? Include NO periods.'
$IpEnd=Read-Host 'Which IP Address do you want to end with? Include NO periods.'
$SaveMyFilePath=Read-Host 'Enter the file path and name you want for the text file results.'
$PingTries=Read-Host 'Enter the number of times you want to try pinging each address.'
#Run from start ip and ping
#Run the arp -a and output the results to a text file
#Then launch notepad and open the results file
Foreach($MyIpAddressLast in $IpStart..$IpEnd)
{$MyIpAddress=$IpFirstThree+$MyIpAddressLast
Test-Connection -computername $MyIpAddress -Count $PingTries}
arp -a | Out-File $SaveMyFilePath
notepad.exe $SaveMyFilePath
'für i in $ (Seq 1 254); tue ping -c1 -t 1 192.168.11. $ i; done' - seine Native, ohne Drittanbieter-Tools. – YumYumYum