Bashscript entfernte IP herausfinden?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)

  • ... IP-Adresse von einem Netzwerkgerät zu bekommen?

    I. d. R. ja. Ist das Netzwerkgerät (dessen IP-Adresse Du suchst) up oder down?

    EDIT:

    Z. B., wenn up:

    Code
    :~$ sudo arp-scan --interface=wlan0 192.168.178.0/24 | grep -i b8:27:eb:a8:6a:64 | awk '{print $1}'
    192.168.178.26

    EDIT 2:

    Wenn das Gerät (host) down ist, dann siehe z. B.:

    http://stackoverflow.com/questions/1537…arp-age-timeout

    und

    https://forum.ubuntuusers.de/topic/herausfi…e-ein-pc-hatte/

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (26. April 2016 um 20:30)

  • Danke schon mal für deine Antwort. Also die Geräte (kleine Wifi-Boards) sind in der Regel immer up. Nur mein Problem ist, manchmal sind diese Boards nicht mehr über ihr Hostname ansprechbar und ich muss diese rebooten. Da zwischendurch sich die IP-Adressen ändern und ich keine festen vergeben kann würde ich gerne die IP-Adressen auf diesem Weg herausfinden und dann damit rebooten.
    Wenn dann ein Board nicht mehr erreichbar ist, das teste ich mit Pimatic, würde ich dann das Script starten.


  • ... sind in der Regel immer up.

    Dann sollte es mit:

    Code
    arp-scan --interface=<Interface> 192.168.???.0/24 | grep -i <MAC-Adresse> | awk '{print $1}'


    möglich sein.

    EDIT:

    Interface und Subnetz kannst Du im Script hardcodieren und die MAC-Adresse kannst Du dem bash-Script, als Argument geben.

    Code
    :~$ sudo ./getintip b8:27:eb:a8:6a:64
    192.168.178.26

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (26. April 2016 um 20:51)


  • ... bin nämlich nicht so der bashscript Profi.

    Ich auch nicht, ... aber z. B.:

    Bash
    #!/bin/bash
    #
    /bin/echo `/usr/bin/arp-scan --interface=wlan0 192.168.178.0/24 | /bin/grep -i $1 | /usr/bin/awk '{print $1}'`
    
    
    exit 0

    Interface (hier wlan0) und Subnetz (hier .178) musst Du an deine Bedingungen anpassen. Mit "chmod 755" kannst Du das Script ausführbar machen. Für arp-scan braucht man sudo (d. h. root-Rechte).

    EDIT:

    arp-scan muss installiert sein:

    Code
    sudo apt-get install arp-scan

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (26. April 2016 um 21:25)


  • Ich auch nicht, ... aber z. B.:

    Bash
    #!/bin/bash
    #
    /bin/echo `/usr/bin/arp-scan --interface=wlan0 192.168.178.0/24 | /bin/grep -i $1 | /usr/bin/awk '{print $1}'`
    
    
    exit 0

    Das echo kann man sich sparen ;)

    Ich würd das so machen:

    [code=php]
    #!/bin/bash

    [ -z "$1" ] && echo "Usage: $0 <MAC-ADR>" && exit 1

    /usr/bin/arp-scan 192.168.0.0/24 | /bin/grep -i $1 | /usr/bin/awk '{print $1}'

    exit 0
    [/php]

    Wenn man kein Argument/Parameter an das Script übergibt kommt so auch keine Fehlermeldung sondern ein Hinweis wie mans nutzen soll ;)
    Wenn es keine Ausgabe gibt hat er auch nichts gefunden.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!