Good evening guys, I have a Xiaomi Mi Router 4A Gigabit Edition with OpenWrt 22.03.2 i'll found a script at https://gist.github.com/jwalanta/53f55d03fcf5265938b64ffd361502d5 to be notified via email when a new device connects to my network. I read that it doesn't work in version 22.03..is something like that valid? Do you have a better suggestion? ill try it and didnt work for me.....also ill make openwrt dhcp client because connects to isp router.......when i connect from wifi device to Openwrt it is delay to take internet ...
There's also a workaround in the last post?
what do you mean
and it works?
Worth a try ?!
not working
Use a hotplug script as described in this topic.
only this
You can create a hotplug script (in /etc/hotplug.d/dhcp)
[ "$ACTION" == "add" ] || exit 0
known_mac_addr="/etc/known_mac_addr"
notification_email="aaaa@gmail.com"
if ! /bin/grep -iq "$MACADDR" "$known_mac_addr"; then
msg="IP $IPADDR assigned to a new device with MAC addr $MACADDR"
echo -e "From: \nTo:$notification_email \nSubject:DHCP\n\n$msg" | msmtp "$notification_email"
fi
exit 0
or everything i mean and this https://gist.github.com/jwalanta/53f55d03fcf5265938b64ffd361502d5
Are you wanting to actually receive an SMTP email sent via the internet to your personal inbox, or just a local sendmail message notification?
Good morning from Greece my friend, SMTP mail from internet.
If you don't have your own mail server that you can use as a smart host, see the configuration example of how to set up gmail. You will need to generate an App Password.
Make sure you get an email when you run:
echo -e "Subject: Test mail\n\nThis is a test \"message\"." | msmtp someone@examle.com
Dump the current known devices to a file
cat /tmp/dhcp.leases | awk '{ print $2" "$3" "$4 }' >/etc/known_macs
The script below should do the job. Don't forget to set the correct mail address.
For testing purposes you could delete /etc/known_macs
, comment line 1 and uncomment line 2.
cat << "EOF" > /etc/hotplug.d/dhcp/90-newdev
[ "$ACTION" == "add" ] || exit 0
# [ "$ACTION" == "add" -o "$ACTION" == "update" ] || exit 0
known_macs="/etc/known_macs"
email_addr="someone@examle.com"
if ! /bin/grep -iq "$MACADDR" "$known_macs"; then
msg="New device detected:\n\nMAC: $MACADDR\nIP: $IPADDR\nHostname: $HOSTNAME"
echo "$MACADDR $IPADDR $HOSTNAME" >> /etc/known_macs
echo -e "To:$email_addr \nSubject:New device\n\n$msg" | msmtp "$email_addr"
fi
exit 0
EOF
To add to @pavelgl ’s post (a novel approach ). This should get you up with adding gmail 2 Step Verification and modifying your
msmtprc
config.
[Solved]Mailsend (cant send a mail) Invalid login or password - #7 by RuralRoots
put the script in ```
/etc/hotplug.d/dhcp/ with the name 90-newdev......install msmtp and check it...send email.......everything looks fine.....how i check if the script works?......note receive any mail from script
The idea is to receive emails only when a new device is detected on the network.
So connect a new device to your network, change the MAC address of an existing device or
meaning
rm /etc/known_macs
# [ "$ACTION" == "add" ] || exit 0
[ "$ACTION" == "add" -o "$ACTION" == "update" ] || exit 0
and you will receive emails until each device on your network updates its dhcp lease and it is written to /etc/known_macs
.
i dont have file in /etc/known_macs
to delete it...here is the problem........maybe openwrt is dhcp client?
Obviously you didn't do that
Just edit the script
and disconnect/connect some device.
root@Chrisrer:~# cat /tmp/dhcp.leases | awk '{ print $2" "$3" "$4 }' >/etc/known
_macs
cat: can't open '/tmp/dhcp.leases': No such file or directory
root@Chrisrer:~#
i was make the changes.........maybe the problem is something else connecteting device but not give access to internet
This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.