Es tut mir leid, wenn dies bereits auf eine andere Weise gefragt wurde, ich konnte es nicht herausfinden und hatte ziemlich schreckliche Erfahrungen damit, herauszufinden, wie man Avahi richtig einsetzt.
ich habe avahi
funktioniert einwandfrei und kann es verwenden, um mein WLAN aktiviert zu erkennen Brother
Scanner. Ich kann seine IP-Adresse durch Ausgabe herausfinden
avahi-browse -arp|grep -i brother
So kann ich dann meine normale Konfigurationsdatei ändern (technisch gesehen ist es die Bruder-Konfigurationsdatei, die sane verwendet: /etc/opt/brother/scanner/brscan4//brsanenetdevice4.cfg
und fügen Sie die IP-Adresse des Scanners hinzu.
Wenn jedoch das Netzwerk ausfällt und der Scanner vom Router eine neue IP-Adresse erhält, muss ich diesen Vorgang erneut durchführen. Also bin ich hier und denke: "Ist das nicht der springende Punkt von Avahi?" nicht müssen IP-Adressen eingeben? "Also versuche ich, den avahi-Hostnamen anstelle der IP-Adresse zur Datei hinzuzufügen:
DEVICE=brother-scanner-avahi , "MFC-avahi" , Unknown , IP-ADDRESS=BRNXXXXXXX.local
anstatt
DEVICE=brother-scanner-101 , "MFC-101" , Unknown , IP-ADDRESS=192.168.0.101
Das geht aber nicht. Gut, brsaneconfig4 -p
tut, weil es nur die Anfrage an übergibt ping
das kann mit dem avahi hostnamen ganz gut umgehen. xsane
(0.998) sagt nur:
Gerät 'brother4: net1; dev2' konnte nicht geöffnet werden: Ungültiges Argument
Also, mein Gedanke ist, irgendwie eine interne statische IP zu setzen, um die Avahi-IP "aufzulösen". Gibt es eine Möglichkeit, dies zu tun? Zum Beispiel, wenn ich wollte:
127.0.0.2
um nur ein Alias für den (dynamisch) aufgelösten Avahi-IP-Adressnamen des Geräts zu sein. Ein bisschen wie das Gegenteil von dem, was die hosts
Datei tut. Ich denke, das könnte beinhalten bind
oder squid
oder etwas Ähnliches, mit dem ich keine Erfahrung habe, also würde ich nicht wissen, wo ich anfangen soll.
Dies ist eine Fedora-Linux-Maschine.
Edit: Ich möchte dies übrigens auf dem Router vermeiden, da ich wissen möchte, ob dies überhaupt möglich ist, um dies zu erreichen.
printername.local
via avahi, siehe z.B. Hier . Ich habe das nicht selbst gemacht, weil ich es vorziehen würde, den Router so zu konfigurieren, dass (a) bekannte Geräte immer die gleichen IP-Adressen erhalten und (b) die DNS-Auflösung durchgeführt wird, sodass ich keine Details angeben oder Fehler beheben kann besondere Probleme.Antworten:
In brsanenetdevice4.cfg können Sie anstelle einer IP-Adresse einen Hostnamen verwenden, der Name der Konfigurationsvariablen lautet jedoch NODENAME.
Wenn Sie beispielsweise Ihren obigen Fall ändern, würden Sie Folgendes verwenden:
und es wird mit avahi genauso gelöst wie beim Drucken.
quelle
Ok, auf den Hinweis eines Freundes, der auf eine andere SU-Antwort auf eine verwandte Frage hinwies ( IP-Adresse mit iptables umleiten ) und einige Experimente und Versuche und Irrtümer, ich habe es herausgefunden. Hier ist es, falls es auch jemandem hilft:
Der Trick ist zu verwenden
iptables
NAT . Zuerst wählen wir unsere (nicht zugewiesene / verfügbare) IP als Alias aus. So etwas wie 192.168.0.201 (etwas, von dem Sie wissen, dass der Router es nicht verwendet). HINWEIS: tun nicht Verwenden Sie den Bereich 127.0.0.x, da dies nicht funktioniert!Dann addierst du das zum
sane
Definition für den Scanner. In meinem Fall ist die Datei/etc/opt/brother/scanner/brscan4/brsanenetdevice4.cfg
. Also habe ich diese Zeile hinzugefügt:Ich habe dann ein Skript erstellt, das Folgendes enthält:
Führen Sie das Skript aus und jetzt
sane
sollte in der Lage sein, Ihren Scanner über die Alias-IP-Adresse zu erkennen. Sie können das Skript dann einem Cron-Job oder einem Boot-Skript (Autostart oder was auch immer Ihr System verwendet) hinzufügen, und das erledigt jedes Mal die Dinge für Sie.Das Skript muss als Superuser (root) oder sudo ausgeführt werden.
Hoffe das hilft jemandem da draußen.
quelle