Существует утилита с именем dhcpdump
, она прослушивает сетевой интерфейс и сбрасывает DHCP-трафик, она также может фильтровать по аппаратному адресу (MAC).
Вы можете использовать это с комбинацией grep, чтобы вызвать ваше действие.
На ноутбуке я использовал его для контроля через Ethernet запроса на IP-адрес моего телефона (по Wi-Fi).
dhcpdump -i eth0 -h cc:05:1b:1d:8f:6d |tee dhcp3.log
cat dhcp3.log
TIME: 2015-10-17 14:21:25.079
IP: 0.0.0.0 (cc:5:1b:1d:8f:6d) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 0
XID: 00000000
SECS: 65535
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: cc:05:1b:1d:8f:6d:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 3 (DHCPREQUEST)
OPTION: 50 ( 4) Request IP address 192.168.1.75
OPTION: 54 ( 4) Server identifier 192.168.1.254
OPTION: 57 ( 2) Maximum DHCP message size 1500
OPTION: 60 ( 13) Vendor class identifier dhcpcd 4.0.15
OPTION: 55 ( 9) Parameter Request List 1 (Subnet mask)
121 (Classless Static Route)
33 (Static route)
3 (Routers)
6 (DNS server)
28 (Broadcast address)
51 (IP address leasetime)
58 (T1)
59 (T2)
---------------------------------------------------------------------------
-121--174190- Это очень глупая цепь перенаправления, которую вы там объединили. Я не понимаю, что вы действительно пытаетесь там сделать, но вы определенно неверно истолковали источник вашей проблемы. Может быть, это даст вам представление:
[mikeserv@desktop top]$ > >(sed 's/^/hey there:\t/') 2> >(ls -l /dev/fd/*)
ls: cannot access /dev/fd/10: No such file or directory
ls: cannot access /dev/fd/255: No such file or directory
ls: cannot access /dev/fd/3: No such file or directory
hey there: lr-x------ 1 mikeserv mikeserv 64 Oct 17 06:38 /dev/fd/0 -> pipe:[10484689]
hey there: l-wx------ 1 mikeserv mikeserv 64 Oct 17 06:38 /dev/fd/1 -> pipe:[10484688]
hey there: lrwx------ 1 mikeserv mikeserv 64 Oct 17 06:38 /dev/fd/2 -> /dev/pts/3
hey there: l-wx------ 1 mikeserv mikeserv 64 Oct 17 06:38 /dev/fd/63 -> pipe:[10484688]
Конечно, эхо
не записывается в , пока
цикл stdout - вы заменяете его в этой команде на любой канал command1
читает, когда вы делаете:
> >(command1) 2> >(command2)
Перенаправления обрабатываются по порядку - слева направо для каждой команды. Каждая из этих замен процесса влияет на одну и ту же команду .
Я готов поспорить, что то, что вы на самом деле пытаетесь сделать, намного ближе к:
command0 | command1 2>&1 >/dev/null | command2
-121--111292- Вы можете выполнить то, что вам нужно, с помощью простого сценария оболочки, запускающего tcpdump, как показано ниже.
tcpdump -c 1 -nn '((port 67 or port 68) and ether host xx:xx:xx:xx:xx:xx)'
Вышеупомянутый запуск tcpdump будет ждать, пока он не захватит один запрос BOOTP/DHCP от клиента с MAC-адресом, соответствующим xx: xx: xx: xx: xx, и завершит работу. На этом этапе вы можете делать то, что вам нужно, зная, что клиент, который вас интересует, подключен к вашей сети и запрашивает DHCP.
Debes montar en /media/user_name/disk_name
, reemplazando user_name
con tu nombre de usuario, y disk_name
en lo que quieras, no en /mnt
.
Puede usar la opción x-mount.mkdir
para crear automáticamente la carpeta disk_name
. Todavía no sé cómo hacer que la carpeta se elimine automáticamente al desmontar.
PD. Probado en Linux Mint 18.3 con el administrador de archivos Nemo.
Bueno, si desea montarlo manualmente, use la GUI. Vaya a disks
y luego seleccione la opción de montaje para montar el disco. Allí encontrará la opción de montar automáticamente el disco durante el inicio.