Skip to content

Instantly share code, notes, and snippets.

@ferstar
Created June 20, 2017 03:08
Show Gist options
  • Select an option

  • Save ferstar/6ebad5e70e17a9f4c05dabed7bf79d7b to your computer and use it in GitHub Desktop.

Select an option

Save ferstar/6ebad5e70e17a9f4c05dabed7bf79d7b to your computer and use it in GitHub Desktop.
change switch ip when it changes
#!/bin/sh
PATH=/usr/bin:/sbin:/bin
SW_FILE=/www/switches.json
NOW_IP=$(ifconfig wlan0 | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1)
OLD_IP=$(jq -r '.switches[0].ip' ${SW_FILE})
if [ ${NOW_IP} != ${OLD_IP} ]; then
echo "ip changes detected, I'll update the ${SW_FILE}"
jq --arg v ${NOW_IP} '.switches[0].ip=$v' ${SW_FILE} > /tmp/tmp.json
mv /tmp/tmp.json ${SW_FILE}
echo "change ip from ${OLD_IP} to ${NOW_IP}"
else
echo "nothing to be done"
fi
@stokito
Copy link

stokito commented Dec 9, 2025

In fact it should be enough to configure router with a static IP by a MAC address or host name like kankun. I'll try to extend the instructions.

@ferstar
Copy link
Author

ferstar commented Dec 9, 2025

In fact it should be enough to configure router with a static IP by a MAC address or host name like kankun. I'll try to extend the instructions.

Actually, your method is even simpler.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment