Ok, auf den Hinweis eines Freundes hin, der auf eine andere SU-Antwort auf eine verwandte Frage ( IP-Adresse mit IP-Adressen umleiten ) und einige Experimente und Versuch und Irrtum hingewiesen hat, habe ich es herausgefunden. Hier ist es, falls es auch jemandem hilft:
Der Trick besteht darin, iptables
NAT zu verwenden . Zuerst wählen wir unsere (nicht zugewiesene / verfügbare) IP als Alias. So etwas wie 192.168.0.201 (etwas, das der Router nicht verwendet). HINWEIS: Verwenden Sie nicht den Bereich 127.0.0.x, da er nicht funktioniert!
Dann fügen Sie das der sane
Definition für den Scanner hinzu. In meinem Fall ist die Datei /etc/opt/brother/scanner/brscan4/brsanenetdevice4.cfg
. Also habe ich diese Zeile hinzugefügt:
DEVICE=brother-scanner-avahi-alias, "MFC-avahi-alias", Unknown, IP-ADDRESS=192.168.0.201
Ich habe dann ein Skript erstellt, das Folgendes enthält:
ALIAS_IP=192.168.0.201 BROTHER_UNIQ_STR=MFC-YOUR-MODEL-HERE BROTHER_SCANNER_IP=`avahi-browse -rpt _ipp._tcp|grep $BROTHER_UNIQ_STR|awk 'BEGIN /^=/ { print $8}'` # $7 is the .local hostname # avahi-browse -rpt _ipp._tcp|grep $BROTHER_UNIQ_STR|awk 'BEGIN /^=/ { print $7, $8}' # to complete this: iptables-save >/somepath/iptables.save Add to cron upon start up iptables-restore </somepath/iptables.save ######## echo Brother scanner IP: \'$BROTHER_SCANNER_IP\' if [[ $BROTHER_SCANNER_IP =~ ^[0-9]\.[0-9]\.[0-9]\.[0-9]$ ]]; then # enable IP forwarding in kernel: sysctl net.ipv4.ip_forward=1 # To make it permanent, edit /etc/sysctl.conf and ensure that the line "net.ipv4.ip_forward = 1" is there and not commented out. iptables -t nat -A OUTPUT -d $ALIAS_IP -j DNAT --to-destination $BROTHER_SCANNER_IP # Print the OUTPUT rules after our changes: # iptables -t nat -L iptables -t nat -L OUTPUT # If you really mess up, or want to get rid of all your rules (careful with this command!!) # TO DELETE ALL RULES ("F"lush) run: iptables -t nat -F OUTPUT else echo echo "ERROR: bad ip address" echo exit 1 fi
Führen Sie dieses Skript aus und sane
sollten Ihren Scanner jetzt über die Alias-IP-Adresse erkennen können. Sie können das Skript dann zu einem Cron-Job oder einem Boot-Skript (Autostart oder was auch immer Ihr System verwendet) hinzufügen, und dies wird sich jedes Mal um Sie kümmern.
Das Skript muss als Superuser (Root) oder Sudo ausgeführt werden.
Hoffe, dass jemand da draußen hilft.