#201 Hier à 16:09
- Watael
Re : remise au gout du jour du script de demonipuch imprimante brother
zenity est incompatible avec KDE ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#202 Hier à 16:44
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
D'autre part ,
est ce que pour l'instant ce script apporte vraiment plus que l'outil de brother qui demande le modèle et installe les drivers ?
Pour savoir , il faudrait " décortiquer " et tester ce que fait le script brother .
Hors mis le fait , que le script brother gere les langues , les licences , et qu ' il est en anglais , je ne suis pas certain qu ' il y ait une grande difference .
Voire , le script de brother , ne demandera pas a etre reactualisé , a chaque modification que fera brother sur leur serveur ou autre ...
Le script de demonipuch , en 3 / 4ans , avait perdu de sa valeur , puisqu ' en plus de comporter des bugs , il y a eu entre temps des changements chez brother :
+ adresse qui changent ( info et dl )
+ sortie de nouvelle version d' ubuntu , avec des repertoires qui changent
+ plus de arch en 32 bits
+ un nouveau brscan(x) le 5 actuellement
+ les fichiers lpd
+ les regles udev ( qui manque encore au script actuel )
+ d' autres choses que j ' ai du oubliées .
- qu'il detecte l'imprimante connecté en USB ou sur réseau ( plus dur ) et installe le bon driver
je ne sais pas si on peut géneralisé , mais :
iznobe@k-pi3:~ $ nmap -sn 192.168.1.* | grep -i brother
Nmap scan report for brother.home (192.168.1.84)
iznobe@k-pi3:~ $
on peut donc recuperé l ' ip de l' imprimante facilement .
si l ' utilisateur indique le modele , alors on a le " biercé " gagnant
si il yen a plusieurs , il faudra faire intervenir l' utilisateur pour lui demander quelle IP il veut utiliser pour l ' imprimante qu ' il veut installer .
Pour l' USB , peut etre avec lsusb ?
Donc on pourrait se passer facilement de demander comment est connectée l' imprimante , si on a soit un retour en reseau soit en USB et qu ' il y en qu ' une .
Pas tres compliqué a coder je pense .
Dans le cas ou on a plusieurs imprimantes , plus le choix , l ' utilisateur devra repondre aux questions .
Eventuellement on pourrait alors " simplifier " en proposant un choix de couple du genre :
choix 1 : model name : USB
choix 2 : model_name : IP 192.168.1.84
etc ...
ce qui du coup , apporterait un " vrai " plus par rapport au script de brother qui lui , demande tout à l' utilisateur .
---------------------------------------------------------
Question subsidiaire a ceux / celles qui aident au dev du code :
je suppose que le script n' est compatible qu ' avec bash non ?
je pensais justement ajouter un controle pour $SHELL , bonne idée ou inutile ?
Dernière modification par iznobe (Hier à 17:08)
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#203 Hier à 17:01
- Watael
Re : remise au gout du jour du script de demonipuch imprimante brother
nmap -sn -oG - 192.168.1.0/24 | gawk 'tolower($3) ~ /brother/{print $2}'
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#204 Hier à 17:10
- freechelmi
Re : remise au gout du jour du script de demonipuch imprimante brother
le script de brother ne fait pas que demander le modèle et basta: pour un néophyte c’est de la ligne de commande donc très obscur à priori
J'ai du raté quelque chose car les 2 scripts demandent le modèle en CLI
Hors ligne
#205 Hier à 17:18
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
eric63 a écrit :le script de brother ne fait pas que demander le modèle et basta: pour un néophyte c’est de la ligne de commande donc très obscur à priori
J'ai du raté quelque chose car les 2 scripts demandent le modèle en CLI
Actuellement les 2 scripts demandent :
le modele et le type de connexion .
le script de brother , demande bien plus de choses :
l' accord de licence , la validation , le type de connexion , mais il permet aussi des options plus fines pour le reseau avec des choix plus precis et detaillé ( 13 choix , je ne les connais pas tous peut etre avec des sous choix ... ) que ne fait pas le script de demonipuch , ni celui reactualisé .
l ' avantage indeniable du script ici , c' est qu ' il est en francais , et qu ' il ne pose que peu de questions ( ce qui peut etre ramené a une seule question dans le cas ou une seul imprimante , et 2 questions pour le cas de plusieurs imprimantes )
et qu ' il affiche des infos claires que tout le monde comprend aisément ( et un fichier de log le cas echeant qui ne sera pas effacé malencontreusement ) et donc qu ' on peut demander à produire sur le forum avec un simple commande :
cat brprinter_install.log
je ne sais pas comment faire ni si il est possible de recuperer le nom du modele de l' imprimante avec une connexion reseau et USB .
faudrait que je regarde ça ...
Merci @Watael pour la commande
Dernière modification par iznobe (Hier à 17:26)
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#206 Hier à 17:30
- eric63
Re : remise au gout du jour du script de demonipuch imprimante brother
kdialog est fournit de base avec kde/plasma
zenity peut être installé en plus mais demande des dépendances gnome
nmap n’est pas installé par défaut et c’est un snap
kubu@kubu-System-Product-Name:~$ nmap
Command 'nmap' not found, but can be installed with:
sudo snap install nmap
kubu@kubu-System-Product-Name:~$
si je force en deb
kubu@kubu-System-Product-Name:~$ sudo apt install nmap
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
gir1.2-rsvg-2.0 linux-image-6.14.0-24-generic linux-tools-6.14.0-24
linux-headers-6.14.0-24 linux-modules-6.14.0-24-generic linux-tools-6.14.0-24-generic
linux-headers-6.14.0-24-generic linux-modules-extra-6.14.0-24-generic luckybackup-data
Veuillez utiliser « sudo apt autoremove » pour les supprimer.
Installation de :
nmap
Installation de dépendances :
liblinear4 nmap-common
Paquets suggérés :
liblinear-tools liblinear-dev ncat ndiff zenmap
Sommaire :
Mise à niveau de : 0. Installation de : 3Supprimé : 0. Non mis à jour : 0
Taille du téléchargement : 6103 kB
Espace nécessaire : 27,1 MB / 12,8 GB disponible
Continuer ? [O/n]
…
kubu@kubu-System-Product-Name:~$
nmap -sn -oG - 192.168.1.0/24 | gawk 'tolower($3) ~ /brother/{print $2}'
kubu@kubu-System-Product-Name:~$ nmap -sn 192.168.1.* | grep -i brother
kubu@kubu-System-Product-Name:~$
?????
Kubuntu 25.04 wayland Plasma 6.4.3 KDE Qt 6.8.3 noyau 6.14.0-24 Asus B760+D4 i5-12400F 4.4Ghz DDR4 32Go nvidia RTX 3060 12GB
Utilisez les drivers libres avant d’ installer une brother avec le script demonipuch
J’utilise le clavier LDLC AFNOR
Hors ligne
#207 Hier à 17:43
- Watael
Re : remise au gout du jour du script de demonipuch imprimante brother
ah ? enlève le pipe qu'on voit la sortie de nmap...
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#208 Hier à 17:54
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
j ' ai trouvé un cable USB
et donc :
iznobe@k-pi3:~ $ lsusb | grep -i brother
Bus 001 Device 006: ID 04f9:04fb Brother Industries, Ltd DCP-L3560CDW series
iznobe@k-pi3:~ $
on obtient donc facilement le modele utilisé .
faudrait voir comment faire pour obtenir le modele en reseau , si c' est possible .
Dernière modification par iznobe (Hier à 17:57)
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#209 Hier à 17:58
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
ah ? enlève le pipe qu'on voit la sortie de nmap...
inutile , c ' est simplement que le reseau local de eric63 n ' est pas en 192.168.1.0/24 ...
avant de faire nmap .... , il faut d' abord recuperer le reseau local utilisé => " ip a " peut etre ? mais sur qu ' il doit y avoir bien mieux pour cela ...
mais j' en suis pas là , j ' essaie de voir si on peut recuperer le nom du modele via le reseau
@watael : une commande pour recuperer une page internet sur l' IP 192.168.1.84 port 80 ?
c' est quoi la commande pour " sniffer " un site dejà , j ' ai un trou là ...
EDIT : on peut faire ça avec wget apparemment :
iznobe@k-pi3:~ $ wget -E "192.168.1.84"
--2025-08-14 18:04:57-- http://192.168.1.84/
Connexion à 192.168.1.84:80… connecté.
requête HTTP transmise, en attente de la réponse… 301 Moved Permanently
Emplacement : /home/status.html [suivant]
--2025-08-14 18:04:57-- http://192.168.1.84/home/status.html
Connexion à 192.168.1.84:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 5138 (5,0K) [text/html]
Sauvegarde en : « index.html.1.html »
index.html.1.html 100%[========================================================================>] 5,02K --.-KB/s ds 0s
2025-08-14 18:04:57 (31,8 MB/s) — « index.html.1.html » sauvegardé [5138/5138]
iznobe@k-pi3:~ $ cat index.html.1.html
<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html lang="en-gb" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb"><head><meta http-equiv="Content-Script-Type" content="text/javascript" /><meta http-equiv="content-style-type" content="text/css" /><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript" src="/common/js/ews.js"></script><link rel="stylesheet" type="text/css" href="../common/css/mobile_common.css" />
<link rel="stylesheet" type="text/css" href="../common/css/mobile_ews.css" />
<script type="text/javascript" src="../common/js/cookie.js"></script>
<script type="text/javascript" src="../common/js/language.js"></script>
<script type="text/javascript" src="../common/js/lcddisplay.js"></script>
<title>Brother DCP-L3560CDW series</title>
....
Bon , et bien voilà , si pas mieux que wget , " yapuka ! " on peut donc se passer de poser des questions à l' utilisateur ( si une seule imprimante ) .
Dernière modification par iznobe (Hier à 18:16)
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#210 Hier à 18:08
- ylag
Re : remise au gout du jour du script de demonipuch imprimante brother
Bonjour,
nmap n’est pas installé par défaut et c’est un snap
il y a un paquet deb nmap dans les dépôts réguliers.
apt policy nmap
A+
Hors ligne
#211 Hier à 18:11
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
pas grave qu ' il ne soit pas installé par defaut , on a prevu le cas dans le script , il suffit de rajouter nmap à la liste des paquets pre requis et voilou .
et bien sur pas de snap cela va de soi
et pour trouver l' IP :
hostname -I | cut -d ' ' -f1
suffit de rajouter " /24 " à la fin et le tour est joué pour nmap
Dernière modification par iznobe (Hier à 18:20)
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#212 Hier à 18:30
- diesel
Re : remise au gout du jour du script de demonipuch imprimante brother
pas grave qu ' il ne soit pas installé par defaut , on a prevu le cas dans le script , il suffit de rajouter nmap à la liste des paquets pre requis et voilou .
et bien sur pas de snapcela va de soi
et pour trouver l' IP :
hostname -I | cut -d ' ' -f1
suffit de rajouter " /24 " à la fin et le tour est joué pour nmap
Et pour les "c.ns" qui sont en ipv6 ?
Et ça vaut pour le reste du script.
Amicalement.
Jean-Marie
Dernière modification par diesel (Hier à 20:43)
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#213 Hier à 18:33
- Watael
Re : remise au gout du jour du script de demonipuch imprimante brother
une commande pour recuperer une page internet sur l' IP 192.168.1.84 port 80 ?
c' est quoi la commande pour " sniffer " un site dejà , j ' ai un trou là ...
pour quoi faire ?
quel est le but réél ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#214 Hier à 18:40
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
bon , faut que je rentre là :
pour le moment ça donne :
#!/bin/bash -x
# > vim search whole line : `yy / <Ctrl-F> p <Enter>'
# définitions de variables
# gestion des arguments
# infos Brother
# quelques fonctions
# quelques vérifications
# initialisation du tableau associatif `printer'
# vérification de variables disponibles dans `printer'
# préparation du système
# téléchargement des pilotes
# configuration de l'imprimante
# configuration du scanner
# <
shopt -s extglob nullglob globstar
############################
# définitions de variables
############################
if test -f /etc/lsb-release
then
. /etc/lsb-release
DistroName="$DISTRIB_ID"
VersionYear="${DISTRIB_RELEASE::2}"
codeName="$DISTRIB_CODENAME"
elif test -f /usr/lib/os-release
then
. /usr/lib/os-release
DistroName="$NAME"
VersionYear="${VERSION_ID::2}"
codeName="$VERSION_CODENAME"
fi
user="$SUDO_USER"
arch="$(uname -m)"
date=$(date +%F_%T)
tmpDir="/tmp/packages"
#Logfile="/home/$user/brprinter_install.log"
libDir="/usr/lib/$arch-linux-gnu"
declare -A printer
declare -i err
#########################
# gestion des arguments
#########################
declare -u modelName=$1
until test -n "$modelName"
do
read -rp 'Entrez le modèle de votre imprimante : ' modelName
done
printerName="${modelName//-/}"
#check IP
until test -n "$IP"
do
read -rp "Voulez-vous configurer votre imprimante pour qu'elle fonctionne en réseau ? [o/N]: "
[[ $REPLY == [YyOo] ]] || break
if test -n "$2"
then
IP=$2
shift $#
else
read -rp "Entrez l'adresse IP de votre imprimante : " IP
fi
IFS='.' read -ra ip <<< "$IP"
for i in "${ip[@]}"
do
((n++ ? i >=0 && i<=255 : i>0 && i<=255)) || err+=1
done
if (( ${#ip[*]} != 4 )) || ((err)) || ! ping -qc2 "$IP"
then
err=0
unset IP
fi
done
#################
# infos Brother
#################
# ancienne adresse d' obtention des infos :
#Url_Info="http://www.brother.com/pub/bsc/linux/infs"
# nouvelle adresse :
Url_Info="https://download.brother.com/pub/com/linux/linux/infs"
# Packages :
Url_Pkg="https://download.brother.com/pub/com/linux/linux/packages"
Url_Pkg2="http://www.brother.com/pub/bsc/linux/packages" # ancienne adresse d'obtention des paquets
Udev_Rules="/lib/udev/rules.d/60-libsane1.rules"
Udev_Deb_Name="brother-udev-rule-type1-1.0.2-0.all.deb"
Udev_Deb_Url="http://download.brother.com/welcome/dlf006654"
Scankey_Drv_Deb_Name="brscan-skey-0.3.4-0.amd64.deb"
printerInfo="$Url_Info/$printerName"
Printer_dl_url="https://support.brother.com/g/b/downloadtop.aspx?c=fr&lang=fr&prod=${printerName}_us_eu_as"
######################
# quelques fonctions
######################
errQuit()
{
>&2 echo "$@"
exit 1
}
verif_lien()
{ # pour faire un boucle, suffit-il vérifier que le nombre d'arguments est pair ?
local lien=$1 cible=$2
if ! test -L "$lien"
then
ln -s "$cible" "$lien"
fi
}
install_pkg()
{
for pkg do
if ! dpkg-query -f '${binary:Package}\n' -W "$pkg" &>/dev/null
then
apt-get install -qq "$pkg"
fi
done
}
##########################
# quelques vérifications
##########################
if test "$DistroName" != "Ubuntu"; then errQuit "La distribution n’est pas Ubuntu ou une des ses variantes officielles.";fi
if test $SHELL != "/bin/bash"; then errQuit "Shell non compatible. utilisez : bash"; fi
if test "$arch" != "x86_64"; then errQuit "Système non compatible."; fi
#if [[ $arch != @(i386|i686|x86_64) ]]
if ((EUID)); then errQuit "Vous devez lancer le script en root : sudo $0"; fi
if ! nc -z -w5 'brother.com' 80; then errQuit "le site \"brother.com\" n'est pas joignable.";fi
my_IP="$(hostname -I | cut -d ' ' -f1)"
printer_IP="$(nmap -sn -oG - "$my_IP"/24 | gawk 'tolower($3) ~ /brother/{print $2}')"
USB_printer_name= ???
NET_prineter_name= ???
##################################################
# initialisation du tableau associatif `printer'
##################################################
while IFS='=' read -r k v
do
printer[$k]=$v
done < <(wget -qO- "$printerInfo" | sed '/\(]\|rpm\|=\)$/d')
########################################################
# vérification de variables disponibles dans `printer'
########################################################
if ! test "${printer[PRINTERNAME]}" = "$printerName"
then
errQuit "les données du fichier info recupéré et le nom de l'imprimante ne correspondent pas."
fi
if test -n "${printer[LNK]}"
then
printerInf="$Url_Info/${printer[LNK]}"
fi
if test -n "${printer[SCANNER_DRV]}"
then
printer[udev_rules]="$Udev_Deb_Name"
. <(wget -qO- "$Url_Info/${printer[SCANNER_DRV]}.lnk" | sed -n '/^DEB/s/^/scanner_/p')
. <(wget -qO- "$Url_Info/${printer[SCANKEY_DRV]}.lnk" | sed -n '/^DEB/s/^/scanKey_/p')
printer[SCANNER_DRV]="$scanner_DEB64"
printer[SCANKEY_DRV]="$scanKey_DEB64"
if test -n "$VersionYear"; then
if (( VersionYear >= 24 )) && test "${printer[SCANKEY_DRV]}" = 'brscan-skey-0.3.2-0.amd64.deb'
then
printer[SCANKEY_DRV]="$Scankey_Drv_Deb_Name"
fi
else
errQuit "Impossible d’évaluer la version de la distribution."
fi
else
err+=1
echo "pas de pilote pour le scanner."
fi
##########################
# préparation du système
##########################
if test -f "$Logfile"
then
mv -v "$Logfile" "$Logfile.$date"
fi
for d in "$tmpDir" "/usr/share/cups/model" "/var/spool/lpd"
do
if ! test -d "$d"
then
mkdir -pv "$d"
fi
done
apt-get update -qq
install_pkg "multiarch-support" "lib32stdc++6" "cups" "curl" "wget" "nmap" "libusb-0.1-4:amd64" "libusb-0.1-4:i386" "sane-utils"
for i in \
DCP-{11{0,5,7}C,120C,31{0,5}CN,340CW} \
FAX-{18{15,20,35,40}C,19{2,4}0CN,2440C} \
MFC-{21{0,5}C,32{2,4}0C,33{2,4}0CN,3420C,3820CN,4{1,2}0CN,425CN,5440CN,5840CN,620CN,640CW,820CW}
do
if test "$i" = "$modelName"
then
install_pkg "csh"
fi
done
for i in \
DCP-{1{0,4}00,80{{20,25D},{40,45D},{60,65DN}}} \
FAX-{2{850,900},3800,4{100,750e},5750e} \
HL-{1{030,230,2{4,5}0,270N,4{3,4,5}0,470N,650,670N,850,870N},5{0{3,4,5}0,070N,1{3,4}0,150D,170DN,240,2{5,7}0DN,280DW},6050{,D}} \
MFC-{4800,6800,8{4{20,40,60N},500,660DN,8{20D,40D,60DN,70DW}},9{0{3,7}0,1{6,8}0,420CN,660,7{0,6}0,8{0,6,8}0}}
do
if test "$i" = "$modelName"
then
verif_lien "/etc/init.d/lpd" "/etc/init.d/cups"
if test -L /sbin/init
then
verif_lien "/lib/systemd/system/cups.service" "/lib/systemd/system/lpd.service"
systemd daemon-reload
fi
fi
done
##
##############################
# téléchargement des pilotes
##############################
#echo " DL DRV TAB == ${printer[*]}"
for drv in "${printer[@]}"
do
if [[ $drv == @($printerName|no|yes) ]]; then continue;fi
for addr in "$Url_Pkg" "$Url2_Pkg"
do
if ! test -f "$tmpDir/$drv"
then
Url_Deb="$addr/$drv"
if test "$drv" = "${printer[udev_rules]}"
then
Url_Deb="$Udev_Deb_Url/$drv"
fi
wget -cP "$tmpDir" "$Url_Deb"
else
break
fi
done
pkg2install+=( "$tmpDir/$drv" )
done
#echo "PKG2INSTALL == ${pkg2install[@]}"
#installation des pilotes
dpkg --install --force-all "${pkg2install[@]}"
##
#################################
# configuration de l'imprimante
#################################
#retrouver le fichier `.ppd' pour l'imprimante
for drv in "PRN_CUP_DEB" "PRN_DRV_DEB"
do
pkg=${printer[$drv]}
#echo "pkg == $pkg"
if test -n "$pkg" -a -f "$tmpDir/$pkg"
then
while read -d '' fileName
do
PPDs+=( "$fileName" )
done < <(dpkg --contents "$tmpDir/$pkg" | gawk 'BEGIN{ORS="\0"} /ppd/{sub(".","",$NF); print $NF}')
fi
done
#echo "PPDs == ${PPDs[*]}"
if test -z "$Ppd_File"
then
PPDs=( /usr/share/cups/model/**/*brother*@($printerName|$modelName)*.ppd )
fi
case ${#PPDs[*]} in
0) echo "no ppd"
err+=1
;;
1) echo one ppd
Ppd_File=${PPDs[0]}
;;
*) err+=1
echo "more than one ppd"
Ppd_File=${PPDs[0]}
;;
esac
cp /etc/cups/printers.conf.O /etc/cups/printers.conf "$tmpDir"
systemctl restart cups
sleep 1
if test -n "$IP"
then
lpadmin -p "$modelName" -E -v "lpd://$IP/binary_p1" -P "$Ppd_File"
else
lpadmin -p "$modelName" -E -v 'usb://dev/usb/lp0' -P "$Ppd_File"
fi
#restauration fichier conf
############################
# configuration du scanner
############################
if test -z "ÎP"
then #USB
if grep -q "ATTRS{idVendor}==\"04f9\", ENV{libsane_matched}=\"yes\"" "$Udev_Rules"
then
echo " - Règle udev deja presente dans le fichier $Udev_Rules"
else
sed -i "/LABEL=\"libsane_usb_rules_begin\"/a\
\n# Brother\nATTRS{idVendor}==\"04f9\", ENV{libsane_matched}=\"yes\"" "$Udev_Rules"
udevadm control --reload-rules
fi
else #network
for saneConf in /usr/bin/brsaneconfig{,{2..5}}
do
test -x "$saneConf" && cmd=$saneConf
done
if test -z "$cmd"
then
errQuit "no brsaneconfig found."
elif test "$cmd" = '/usr/bin/brsaneconfig4'
then
sed -i '/Support Model/a\
0x029a, 117, 1, "MFC-8690DW", 133, 4\
0x0279, 14, 2, "DCP-J525W"\
0x027b, 13, 2, "DCP-J725DW"\
0x027d, 13, 2, "DCP-J925DW"\
0x027f, 14, 1, "MFC-J280W"\
0x028f, 13, 1, "MFC-J425W"\
0x0281, 13, 1, "MFC-J430W"\
0x0280, 13, 1, "MFC-J435W"\
0x0282, 13, 1, "MFC-J625DW"\
0x0283, 13, 1, "MFC-J825DW"\
0x028d, 13, 1, "MFC-J835DW"' /opt/brother/scanner/brscan4/Brsane4.ini
fi
$cmd -a name=SCANNER model="$modelName" ip="$IP"
fi
if test -d "$libDir"
then
case $cmd in
/usr/bin/brsaneconfig)
cd "$libDir" || exit;
cp --force /usr/lib64/libbrcolm.so.1.0.1 .
ln -sf libbrcolm.so.1.0.1 libbrcolm.so.1
ln -sf libbrcolm.so.1 libbrcolm.so
cp --force /usr/lib64/libbrscandec.so.1.0.0 "$libDir"
ln -sf libbrscandec.so.1.0.0 libbrscandec.so.1
ln -sf libbrscandec.so.1 libbrscandec.so
cd "$libDir"/sane || exit
cp --force /usr/lib64/sane/libsane-brother.so.1.0.7 .
ln -sf libsane-brother.so.1.0.7 libsane-brother.so.1
ln -sf libsane-brother.so.1 libsane-brother.so
;;
/usr/bin/brsaneconfig2)
cd "$libDir" || exit
cp --force /usr/lib64/libbrscandec2.so.1.0.0 .
ln -sf libbrscandec2.so.1.0.0 libbrscandec2.so.1
ln -sf libbrscandec2.so.1 libbrscandec2.so
cp --force /usr/lib64/libbrcolm2.so.1.0.1 .
ln -sf libbrcolm2.so.1.0.1 libbrcolm2.so.1
ln -sf libbrcolm2.so.1 libbrcolm2.so
cd "$libDir"/sane || exit
cp --force /usr/lib64/sane/libsane-brother2.so.1.0.7 .
ln -sf libsane-brother2.so.1.0.7 libsane-brother2.so.1
ln -sf libsane-brother2.so.1 libsane-brother2.so
;;
/usr/bin/brsaneconfig3)
cd "$libDir" || exit
cp --force /usr/lib64/libbrscandec3.so.1.0.0 .
ln -sf libbrscandec3.so.1.0.0 libbrscandec3.so.1
ln -sf libbrscandec3.so.1 libbrscandec3.so
cd "$libDir"/sane || exit
cp --force /usr/lib64/sane/libsane-brother3.so.1.0.7 .
ln -sf libsane-brother3.so.1.0.7 libsane-brother3.so.1
ln -sf libsane-brother3.so.1 libsane-brother3.so
;;
/usr/bin/brsaneconfig4)
cd "$libDir"/sane || exit
ln -sf libsane-brother4.so.1.0.7 libsane-brother4.so.1
ln -sf libsane-brother4.so.1 libsane-brother4.so
;;
/usr/bin/brsaneconfig5)
cd "$libDir"/sane || exit
ln -sf /usr/lib/x86_64-linux-gnu/sane/libsane-brother5.so.1.0 libsane-brother5.so.1
ln -sf /usr/lib/x86_64-linux-gnu/sane/libsane-brother5.so.1.0.7 libsane-brother5.so.1.0
ln -sf /opt/brother/scanner/brscan5/libsane-brother5.so.1.0.7 libsane-brother5.so.1.0.7
;;
esac
fi
ligne 132 .
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#215 Hier à 18:42
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
une commande pour recuperer une page internet sur l' IP 192.168.1.84 port 80 ?
c' est quoi la commande pour " sniffer " un site dejà , j ' ai un trou là ...pour quoi faire ?
quel est le but réél ?
recuperer le nom du modele de l ' imprimante connectée au reseau local .
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#216 Hier à 19:00
- Watael
Re : remise au gout du jour du script de demonipuch imprimante brother
il ne semble pas être question de "sniffer" le serveur, mais uniquement accéder à la page d'accueil du serveur HTTP de l'imprimante.
wget est alors le bon outil.
ou curl
Dernière modification par Watael (Hier à 19:01)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#217 Hier à 19:36
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
la commande :
nmap -sn -oG - 192.168.2.84/24 | gawk 'tolower($3) ~ /brother/{print $2}'
fonctionne pas
le retour est vide .
et pourtant :
iznobe@iznobe-pc:~$ nmap -sn 192.168.2.84/24
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-08-14 19:44 CEST
Nmap scan report for 192.168.2.1
Host is up (0.068s latency).
Nmap scan report for 192.168.2.10
Host is up (0.069s latency).
Nmap scan report for 192.168.2.11
Host is up (0.061s latency).
Nmap scan report for 192.168.2.12
Host is up (0.060s latency).
Nmap scan report for 192.168.2.15
Host is up (0.062s latency).
Nmap scan report for 192.168.2.20
Host is up (0.070s latency).
Nmap scan report for 192.168.2.21
Host is up (0.055s latency).
Nmap scan report for 192.168.2.24
Host is up (0.057s latency).
Nmap scan report for 192.168.2.25
Host is up (0.059s latency).
Nmap scan report for 192.168.2.30
Host is up (0.064s latency).
Nmap scan report for 192.168.2.31
Host is up (0.059s latency).
Nmap scan report for 192.168.2.34
Host is up (0.061s latency).
Nmap scan report for 192.168.2.35
Host is up (0.061s latency).
Nmap scan report for 192.168.2.40
Host is up (0.060s latency).
Nmap scan report for 192.168.2.48
Host is up (0.061s latency).
Nmap scan report for 192.168.2.49
Host is up (0.057s latency).
Nmap scan report for 192.168.2.50
Host is up (0.058s latency).
Nmap scan report for 192.168.2.51
Host is up (0.057s latency).
Nmap scan report for 192.168.2.60
Host is up (0.068s latency).
Nmap scan report for 192.168.2.61
Host is up (0.071s latency).
Nmap scan report for 192.168.2.81
Host is up (0.063s latency).
Nmap scan report for 192.168.2.82
Host is up (0.071s latency).
Nmap scan report for 192.168.2.84
Host is up (0.069s latency).
Nmap scan report for 192.168.2.91
Host is up (0.064s latency).
Nmap scan report for 192.168.2.108
Host is up (0.068s latency).
Nmap scan report for 192.168.2.112
Host is up (0.070s latency).
Nmap scan report for 192.168.2.132
Host is up (0.060s latency).
Nmap done: 256 IP addresses (27 hosts up) scanned in 2.73 seconds
iznobe@iznobe-pc:~$
pourquoi avoir mis " tolower " ??
Dernière modification par iznobe (Hier à 19:49)
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#218 Hier à 20:30
- Watael
Re : remise au gout du jour du script de demonipuch imprimante brother
"pourtant" quoi ? je ne vois pas de "brother" dans la sortie de nmap. Ça fonctionne très bien : ça n'invente pas une ligne qui n'existe pas.
le tolower() est l'équivalent (ou presque. si, si, de loin. ) du -i de "ton" grep : on met la colonne en minuscule et on compare avec une chaîne en minuscule.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#219 Hier à 22:10
- lynn
Re : remise au gout du jour du script de demonipuch imprimante brother
Bonjour,
On peut utiliser avahi-browse pour récupérer le nom et le modèle de l'imprimante. Exemple avec une Canon en wifi sur une Freebox :
avahi-browse --all -t | awk 'BEGIN{IGNORECASE=1}
/Canon|MF[0-9]+C|LBP|iR-ADV|imageRUNNER/ {
for(i=1;i<=NF;i++) if($i=="IPv4"||$i=="IPv6"){p=i;break}
name=""
for(j=p+1;j<NF;j++) {
if ($j ~ /^(Web|FTP|AirPlay|Device|Microsoft|Secure|_)/) break
name = name ? name FS $j : $j
}
if (name) print name
}'
Canon MF620C Series
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#220 Hier à 22:56
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
ok , merci .
" brother " n ' apparait pas parceque le nmap ne fait pas apparaître le DNS local , parceque là , je suis en VPN tailscale , pas en local ...
par contre si je fais :
iznobe@iznobe-pc:~$ nmap="$(nmap -sn -oG - 192.168.1.2/24 | gawk 'tolower($3) ~ /iznobe/{print $2}')"
iznobe@iznobe-pc:~$ echo "$nmap"
192.168.1.2
iznobe@iznobe-pc:~$
ca renvoie bien l' IP donc c' est bon
maintenant comment je fais pour recuperer le nom du modele de l ' imprimante donnée par le fichier recuperé avec wget stp ?
iznobe@k-pi3:~ $ wget -E "192.168.1.84"
--2025-08-14 18:04:57-- http://192.168.1.84/
Connexion à 192.168.1.84:80… connecté.
requête HTTP transmise, en attente de la réponse… 301 Moved Permanently
Emplacement : /home/status.html [suivant]
--2025-08-14 18:04:57-- http://192.168.1.84/home/status.html
Connexion à 192.168.1.84:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 5138 (5,0K) [text/html]
Sauvegarde en : « index.html.1.html »
index.html.1.html 100%[========================================================================>] 5,02K --.-KB/s ds 0s
2025-08-14 18:04:57 (31,8 MB/s) — « index.html.1.html » sauvegardé [5138/5138]
iznobe@k-pi3:~ $ cat index.html.1.html
<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html lang="en-gb" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb"><head><meta http-equiv="Content-Script-Type" content="text/javascript" /><meta http-equiv="content-style-type" content="text/css" /><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript" src="/common/js/ews.js"></script><link rel="stylesheet" type="text/css" href="../common/css/mobile_common.css" />
<link rel="stylesheet" type="text/css" href="../common/css/mobile_ews.css" />
<script type="text/javascript" src="../common/js/cookie.js"></script>
<script type="text/javascript" src="../common/js/language.js"></script>
<script type="text/javascript" src="../common/js/lcddisplay.js"></script>
<title>Brother DCP-L3560CDW series</title>
....
là j ' avoue que je seche un peu ... :
wget -E "$printer_IP" -O "$tmpDir/index.html"
# et ensuite le nom du modele se trouve dans la partie " <title>Brother DCP-L3560CDW series</title> "
# il vaut mieux utiliser quelle commande ? un sed ?
Dernière modification par iznobe (Hier à 23:05)
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#221 Hier à 23:21
- Watael
Re : remise au gout du jour du script de demonipuch imprimante brother
w3m --dump peut afficher la page en mode textuel (pas le code, le texte de la page)
il faut voir comment ça se présente, si on peut faire un grep efficace dessus...
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#222 Hier à 23:27
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
on pourrait pas utiliser une regex avec un champ de capture directement dans le fichier html ca me parait presque plus simple .
ou bien utiliser un : IFS read -ra sur la partie comprise entre la balise title ?
je ne sais pas de quoi tu parles :
" w3m --dump "
c' est une commande ça ?
Peut etre du navigateur ? : https://w3m.sourceforge.net/
en faisant genre :
w3m $printer_IP -dump
on ne va pas faire installer ce navigateur juste pou recuperer le nom du modele de l' imprimante , alors qu ' on l' a avec wget ou curl ...
tant pis si il faut mettre 4 lignes de code de plus
Dernière modification par iznobe (Hier à 23:33)
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#223 Hier à 23:29
- Watael
Re : remise au gout du jour du script de demonipuch imprimante brother
on ne traite pas le HTML en shell. Il faut utiliser un parser HTML.
oui. w3m est une commande.
w3m (1) - a text based web browser and pager
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#224 Hier à 23:47
- iznobe
Re : remise au gout du jour du script de demonipuch imprimante brother
je suis certain que tu vas adorer
https://openclassrooms.com/forum/sujet/ … tres-24684
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#225 Aujourd'hui à 00:26
- Watael
Re : remise au gout du jour du script de demonipuch imprimante brother
grrrrrrr...
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne